সম্ভাবনা হলো উপলব্ধ ডেটা সেট থেকে প্রত্যাশিত আউটপুট পাওয়ার সুযোগ। সম্ভাবনার পরিসীমা ০ এবং ১-এর মধ্যে থাকে, যেখানে ০ অসম্ভাব্যতা এবং ১ নিশ্চয়তা নির্দেশ করে।
সম্ভাবনা কী?
গণিতে সম্ভাবনা ঘটনার অনিশ্চিততা এবং কারণ বলে। অন্য কথায়, সম্ভাবনা একটি ঘটনা ঘটার সম্ভাবনা গণনা করে, যা ০ থেকে ১ পর্যন্ত সংখ্যায় প্রকাশ করা যায়। উদাহরণস্বরূপ: নিরপেক্ষ সিক্কা টস করলে হেড পাওয়ার সম্ভাবনা, বা ডাইস রোল করলে ৩ পাওয়ার সম্ভাবনা।
এখন, আমাদের কাজ হলো N টি সিক্কা টস করে কমপক্ষে K টি হেড পাওয়ার সম্ভাবনা বের করা।
মনে করি, ৩ টি সিক্কা এবং K = ২। তাহলে ২³ = ৮ টি উপায়ে সিক্কা টস করা যায়:
HHH, HTH, HHT, HTT, THH, THT, TTT, TTH।
এমন সেটগুলো যেগুলোতে কমপক্ষে ২ টি হেড আছে:
HHH, HTH, HHT, THH।
তাই সম্ভাবনা = ৪/৮ = ০.৫।
উদাহরণ
ইনপুট: k = 1, n = 3 আউটপুট: 0.875 ইনপুট: k = 3, n = 6 আউটপুট: 0.65625
সমাধানের পদ্ধতি -
- n এবং k ইনপুট নেওয়া।
- ফ্যাক্টোরিয়ালের মান একটি অ্যারেয় সংরক্ষণ করা এবং প্রয়োজনে কল করা।
- গণনা করা।
- ফলাফল রিটার্ন করা।
অ্যালগরিদম
ধাপ ১ -> কমপক্ষে k টি হেড পাওয়ার সম্ভাবনা গণনার ফাংশন ঘোষণা
double probability(int k, int n)
double check = 0 ঘোষণা এবং সেট
লুপ i = k থেকে i <= n পর্যন্ত ++i
check += temp[n] / (temp[i] * temp[n - i])
শেষ
check = check / (1LL << n)
return check
ধাপ ২ -> পূর্বে গণনা করার ফাংশন ঘোষণা
void precompute()
temp[0] = temp[1] = 1 সেট
লুপ i = 2 থেকে i < 20 পর্যন্ত ++i
temp[i] = temp[i - 1] * i সেট
শেষ
ধাপ ৩ -> main-এ
precompute() কল
probability(1, 3) কল
শেষ
উদাহরণ
#include<bits/stdc++.h>
using namespace std;
#define size 21
double temp[size];
// n টসে কমপক্ষে k টি হেড পাওয়ার সম্ভাবনা গণনা
double probability(int k, int n) {
double check = 0;
for (int i = k; i <= n; ++i)
check += temp[n] / (temp[i] * temp[n - i]);
check = check / (1LL << n);
return check;
}
void precompute() {
temp[0] = temp[1] = 1;
for (int i = 2; i < 20; ++i)
temp[i] = temp[i - 1] * i;
}
int main() {
precompute();
// ৩ টি সিক্কা থেকে ১ টি হেড পাওয়ার সম্ভাবনা
cout << "probability is : " << probability(1, 3) << "\n";
// ৬ টি সিক্কা থেকে ৩ টি হেড পাওয়ার সম্ভাবনা
cout << "probability is : " << probability(3, 6) << "\n";
return 0;
}
আউটপুট
probability is : 0.875 probability is : 0.65625