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

एक फ़ंक्शन लिखें जो C++ . में दी गई संभावनाओं के अनुसार 3 संख्याओं में से एक उत्पन्न करता है

इस समस्या में, हमें एक फ़ंक्शन बनाना होगा जो दी गई संभावना के आधार पर तीन नंबर उत्पन्न करेगा।

इसके लिए, हम बिल्ट-इन रैंडम नंबर जेनरेटर फंक्शन का उपयोग करेंगे जो रैंड (ए, बी) है जो समान संभावना के साथ रेंज [ए, बी] के भीतर रैंडम नंबर जेनरेट करता है।

हमारा काम केवल तीन नंबर ए, बी, सी को वापस करना है, जिसमें क्रमशः पी (ए), पी (बी), पी (सी) के रूप में होने की संभावना है और संभावना पी (ए) + पी (बी) की परिभाषा के अनुसार है। + पी(सी) =1.

रैंड (ए, बी) का उपयोग करके हमारे फ़ंक्शन को बनाने के लिए। हम इसकी विशेषता का उपयोग करेंगे कि a से b तक किसी भी संख्या के आने की प्रायिकता समान होती है। लेकिन हमें प्रायिकता P(A) इत्यादि के साथ A प्राप्त करना होगा। इसलिए, इसके लिए, हम संख्याओं की प्रतिशत प्रायिकता का उपयोग करेंगे अर्थात यदि P(A) =1/5, तो हम इसे 20% मानेंगे।

तो, अधिकतम प्रायिकता प्रतिशत 100% होगा, इसलिए हम 0 से 100 तक एक यादृच्छिक संख्या उत्पन्न करेंगे और उत्पन्न संख्या के आधार पर हम निम्नलिखित स्थितियों के आधार पर A, B, C के बीच की संख्याएँ लौटाएंगे।

केस 1 - अगर जनरेट की गई संख्या 0 और P(A) के बीच है, तो A.

. लौटाएं

केस 2 - यदि उत्पन्न संख्या P(A) और P(A)+P(B) के बीच है, तो B लौटाएं।

केस 3 - यदि उत्पन्न संख्या P(A)+P(B) और 1{P(A)+P(B)+P(C)} के बीच है, तो C.

लौटाएं

आइए एक उदाहरण देखते हैं जो अवधारणा को स्पष्ट कर देगा,

इनपुट

A = 3 , P(A) = 35%
B = 43, P(B) = 50%
C = 90, P(C) = 15%

कार्यक्रम वापस आ जाएगा,

3 अगर रैंड फ़ंक्शन 0 और 35 के बीच संख्या उत्पन्न करता है।

43 अगर रैंड फ़ंक्शन 35 और 85 के बीच संख्या उत्पन्न करता है।

90 यदि रैंड फ़ंक्शन 85 और 100 के बीच संख्या उत्पन्न करता है।

हमारे तर्क के कार्यान्वयन को दिखाने के लिए कार्यक्रम,

उदाहरण

#include<iostream>
using namespace std;
int randomABC(int A, int B, int C, int PA, int PB, int PC){
   int randNumber = rand()%100+1;
   if (randNumber <= PA)
   return A;
   if (randNumber <= (PA+PB))
   return B;
   else
   return C;
}
int main(){
   cout<<"Random number between 3, 45, 90 with given probabilities is : "<<randomABC(3, 43, 90, 35, 40, 25);
   return 0;
}

आउटपुट

Random number between 3, 45, 90 with given probabilities is : 3

  1. अभाज्य संख्याओं के दिए गए सरणी से डुप्लीकेट हटाने के लिए C++ में एक प्रोग्राम लिखें

    मान लीजिए कि हमने एक सरणी N आकार दिया है जिसमें सभी अभाज्य संख्याएँ हैं। कार्य दिए गए सरणी में डुप्लिकेट ढूंढना और उन्हें निकालना है। उदाहरण के लिए, इनपुट-1 - N = 8 arr[ ] = { 2 ,2 ,2 ,3 ,3 ,3 ,5 ,7 } आउटपुट - 2 3 5 7 स्पष्टीकरण - अभाज्य संख्याओं के दिए गए सरणी में 2 और 3 के कुछ डुप्लीकेट हैं, डु

  1. C++ में दी गई श्रेणी में 'M' से विभाज्य संख्याओं की गणना करें

    हमें तीन नंबर ए, बी और एम दिए गए हैं। ए और बी संख्याओं की सीमा [ए, बी] को परिभाषित करते हैं। लक्ष्य ए और बी के बीच की संख्याओं को गिनना है जो एम से विभाज्य हैं। हम i=A से M के पहले गुणक तक शुरू करेंगे। यदि i%M=0 है तो वेतन वृद्धि की संख्या। अब इंक्रीमेंट i तक i<=बैंड काउंट बढ़ाएँ। आइए उदाहरणों से

  1. C++ में दी गई शर्तों के साथ ग्रिड में 8 नंबर भरें

    मान लीजिए कि हम दी गई आकृति के आठ वृत्तों में 1, 2, 3, 4, 5, 6, 7, 8 को इस प्रकार रखना चाहते हैं कि कोई भी संख्या उस संख्या के निकट न हो जो क्रम में उसके बगल में हो। तो, अगर इनपुट पसंद है 0 - 1 - 1 0 - 1 - 1 - 1 - 1 0 - 1 - 1 0 तो आउटपुट होगा इसे हल करने के लिए, हम