इस समस्या में हमें चार मान p, q, r, s दिए गए हैं। हमारा कार्य लक्ष्य भेदने की संभावनाएं दिए जाने पर खिलाड़ी के जीतने की संभावना खोजना है।
यहां, हमारे पास दो खिलाड़ी हैं जो तीरंदाजी का खेल खेल रहे हैं। और खिलाड़ी 1 के लक्ष्य भेदने की संभावना p/q के रूप में परिभाषित है। खिलाड़ी 2 के लक्ष्य भेदने की संभावना r/s के रूप में परिभाषित है। हमें खिलाड़ी एक के खेल जीतने की संभावना ज्ञात करनी है।
आइए एक उदाहरण से इस समस्या को समझते हैं,
इनपुट
p = 3, q = 5, r = 2, s = 5
आउटपुट
0.789
समाधान दृष्टिकोण
*इस दृष्टिकोण के लिए संभावना के ज्ञान की आवश्यकता है।
चूंकि, खिलाड़ियों को लक्ष्य भेदने का मौका मिलने की संख्या की कोई ऊपरी सीमा नहीं है। दोनों किसी भी संख्या में लक्ष्य भेद सकते हैं जो जीतने की स्थिति की गणना को परीक्षणों की संख्या से स्वतंत्र बनाता है।
तो,
मान लें खिलाड़ी एक के लक्ष्य भेदने की संभावना P1 = p/q है, इससे चूकने की संभावना 1 - p/q होती है।
मान लें खिलाड़ी दो के लक्ष्य भेदने की संभावना P2 = r/s है, जिससे चूकने की संभावना 1 - r/s होती है।
अब, अनंत परीक्षणों के लिए, खिलाड़ी 1 के जीतने की संभावना हो सकती है,
जीत(P1) + (हार(P1)*हार(P2)*जीत(P1)) + (हार(P1)*हार(P2)*हार(P1)*हार(P2)*जीत(P1) + ...
जिसे इस प्रकार सूत्रबद्ध किया जा सकता है,
P1 + ((1 - P1)*(1 - P2)*(P1)) + ((1 - P1)*(1 - P2)*(1 - P1)*(1 - P2)*(P1)) ...
यह एक अनंत GP है जहां,
A = P1 R = [(1 - P1)*(1 - P2)]
योग होगा,
S = A/ (1- R) , चूंकि R 1 से कम है।
$$S=\left(\frac{\left(\frac{p}{p}\right)}{1-\left(1-\frac{p}{p}\right)*\left(1-\frac{p}{p}\right)}\right)$$
हमारे समाधान के कार्य को दर्शाने वाला प्रोग्राम,
उदाहरण
#include <iostream> using namespace std; double calcWinningPropP1(double p, double q, double r, double s){ return (p / q) / (1 - ( (1 - (p/q)) * (1 - (r/s)) ) ); } int main() { double p = 3, q = 5, r = 2, s = 5; cout<<"The probability of player 1 winning is "<<calcWinningPropP1(p, q, r, s); return 0; }आउटपुट
The probability of player 1 winning is 0.789474