Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में N सिक्कों के टॉस में कम से कम K हेड्स आने की प्रायिकता


प्रायिकता उपलब्ध डेटा सेट से वांछित आउटपुट प्राप्त करने की संभावनाएं हैं। प्रायिकता की सीमा 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

  1. C++ में सरणी में कुंजी K की उपस्थिति की संभावना C++ में सरणी में कुंजी K की उपस्थिति की संभावना

    n आकार की एक सरणी दी गई है और कार्य दिए गए तत्व k की संभावना ढूंढना है यदि यह सरणी में उपलब्ध है। पूरी सरणी को n तक पार करें जो सरणी में तत्वों की संख्या के बराबर है और दिए गए तत्व या कुंजी k को खोजें। यदि तत्व सरणी में मौजूद है तो उसकी संभावना की गणना करें अन्यथा 0 प्रिंट करें। इनपुट arr[] = { 1

  1. C++ में शतरंज बोर्ड पर घोड़े की संभावना C++ में शतरंज बोर्ड पर घोड़े की संभावना

    मान लीजिए हमारे पास एक NxN शतरंज बोर्ड है, एक घोड़ा r-वें पंक्ति और c-वें स्तंभ से शुरू होता है और ठीक K चालें चलने का प्रयास करता है। यहां पंक्तियों और स्तंभों को 0 से अनुक्रमित किया जाता है, इसलिए शीर्ष-बायां वर्ग (0, 0) है, और निचला-दायां वर्ग (N-1, N-1) है। एक घोड़ा एक सेल से 8 अलग-अलग सेलों म

  1. - Visual Studio में C++ की शुरुआत

    यह गाइड आपको उन कई टूल्स और डायलॉग बॉक्स से परिचित कराने में मदद करेगी जिनका उपयोग आप Visual Studio में C++ के साथ एप्लिकेशन विकसित करते समय कर सकते हैं। हम एक Hello, World स्टाइल कंसोल एप्लिकेशन बनाएंगे ताकि आप इस IDE में काम करने के बारे में अधिक जान सकें। पूर्वापेक्षाएँ इसका पालन करने के लिए, आप