प्रायिकता उपलब्ध डेटा सेट से वांछित आउटपुट प्राप्त करने की संभावनाएं हैं। प्रायिकता की सीमा 0 और 1 के बीच होती है जहां पूर्णांक 0 असंभवता की संभावना दर्शाता है और 1 निश्चितता दर्शाता है।
प्रायिकता क्या है?
गणित में प्रायिकता हमें उन उपकरणों को देती है जो घटनाओं और कारणों की अनिश्चितता बताते हैं। दूसरे शब्दों में हम कह सकते हैं कि प्रायिकता किसी दी गई घटना की घटना की संभावना की गणना से संबंधित है, जिसे 1 और 0 के बीच एक संख्या के रूप में व्यक्त किया जा सकता है। उदाहरण के लिए: निष्पक्ष सिक्का उछालने पर हेड आने की प्रायिकता, या पासा फेंकने पर 3 आने की प्रायिकता।
अब, प्रश्न पर वापस आते हैं हमें N सिक्कों के टॉस में कम से कम k हेड्स आने की प्रायिकता ज्ञात करनी है।
जैसे हमारे पास 3 सिक्के हैं और k 2 है तो सिक्कों को उछालने के 2^3 = 8 तरीके हैं जो हैं −
HHH, HTH, HHT, HTT, THH, THT, TTT, TTH।
और वे सेट जिनमें कम से कम 2 हेड्स हैं −
HHH, HTH, HHT, THH।
तो प्रायिकता 4/8 या 0.5 होगी।
उदाहरण
इनपुट: k = 1, n = 3 आउटपुट: 0.875 इनपुट: k = 3, n = 6 आउटपुट: 0.65625
उपरोक्त समस्या को हल करने के लिए हम जिस दृष्टिकोण का पालन करेंगे −
- हम n और k को इनपुट के रूप में लेंगे।
- फैक्टोरियल के मान को एक सरणी में स्टोर करें और जब भी आवश्यकता हो इसे कॉल करें।
- गणना करें।
- परिणाम वापस करें।
एल्गोरिदम
चरण 1-> n टॉस में कम से कम 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) कॉल करें check वापस करें चरण 2-> मान की पूर्व-गणना करने के लिए फ़ंक्शन घोषित करें void precompute() temp[0] = temp[1] = 1 सेट करें लूप i = 2 से i < 20 और ++i तक temp[i] = temp[i - 1] * i सेट करें चरण 3-> 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(); // 3 सिक्कों में 1 हेड आने की प्रायिकता cout<<"प्रायिकता है : "<<probability(1, 3) << "\n"; // 6 सिक्कों में 3 हेड आने की प्रायिकता cout<<"प्रायिकता है : "<<probability(3, 6) <<"\n"; return 0; }
आउटपुट
प्रायिकता है : 0.875 प्रायिकता है : 0.65625