N सफलताओं तक मैं कैसे फ़्लिप कर सकता हूँ?


17

आप और मैं एक खेल खेलने का फैसला करते हैं जहाँ हम एक सिक्का उछालते हैं। कुल में 10 सिर फ्लिप करने वाला पहला खिलाड़ी खेल जीतता है। स्वाभाविक रूप से, इस बारे में एक तर्क है कि पहले किसे जाना चाहिए।

इस खेल के सिमुलेशन से पता चलता है कि खिलाड़ी पहले फ़्लिप करने वाले खिलाड़ी की तुलना में 6% अधिक जीतता है, जो दूसरे स्थान पर फ़्लिप करता है (पहला खिलाड़ी लगभग 53% जीतता है)। मैं इसे विश्लेषणात्मक रूप से मॉडलिंग करने में दिलचस्पी ले रहा हूं।

यह एक द्विपद यादृच्छिक चर नहीं है, क्योंकि कोई निश्चित संख्या में परीक्षण नहीं हैं (फ्लिप जब तक किसी को 10 सिर नहीं मिलते)। मैं इसे कैसे मॉडल कर सकता हूं? क्या यह नकारात्मक द्विपद वितरण है?


तो अपने परिणामों को फिर से बनाने में सक्षम होने के लिए, यहाँ मेरा अजगर कोड है:

import numpy as np
from numba import jit


@jit
def sim(N):

    P1_wins = 0
    P2_wins = 0

    for i in range(N):

        P1_heads = 0
        P2_heads = 0
        while True:

            P1_heads += np.random.randint(0,2)

            if P1_heads == 10:
                P1_wins+=1
                break

            P2_heads+= np.random.randint(0,2)
            if P2_heads==10:
                P2_wins+=1
                break
    return P1_wins/N, P2_wins/N


a,b = sim(1000000)

3
जब आप विफलताओं तक एक सिक्का टॉस करते हैं और फिर इस तरह के प्रयोग को पूरा करने से पहले होने वाली सफलताओं की संख्या को देखते हैं, तो यह परिभाषा नकारात्मक द्विपद वितरण द्वारा होती है । r
टिम

2
मैं 2% मान को पुन: उत्पन्न नहीं कर सकता। मुझे लगता है कि पहला खिलाड़ी समय के जीतता है । 53.290977425133892%
whuber

1
@ जब तक हाँ, मुझे विश्वास है कि आप सही हैं। मैंने अपनी अनुकृति को जितना संभव हो उससे कम बार चलाया। मेरे नतीजे आपके साथ हैं।
डेमेट्री पानानोस

1
यदि कोई 53% समय जीतता है, तो दूसरा 47% होना चाहिए, इसलिए क्या विवरण नहीं पढ़ना चाहिए "पहला खिलाड़ी दूसरे खिलाड़ी की तुलना में 6% अधिक जीतता है," या "आधे समय में 3% अधिक"? नहीं (जैसा कि वर्तमान में कहता है) "दूसरे फ़्लिप करने वाले खिलाड़ी से 3% अधिक"
जेसीएम

3
क्या आपको यह प्रश्न फाइव थर्टीहाइट रिडलर एक्सप्रेस से मिला है ?
foutandabout

जवाबों:


19

को प्राप्त करने से पहले पूंछ की संख्या का वितरण 10 सिर है नकारात्मक द्विपद मानकों के साथ 10 और 1/2 । चलो संभावना समारोह और हो अस्तित्व समारोह: प्रत्येक के लिए , के खिलाड़ी की संभावना नहीं है पूंछ से पहले सिर और के खिलाड़ी की संभावना नहीं है या अधिक पूंछ से पहले सिर ।जी एन 0 ( एन ) एन 10 जी ( एन ) एन 10fGn0f(n)n10G(n)n10

क्योंकि खिलाड़ी स्वतंत्र रूप से रोल करते हैं, पहला खिलाड़ी बिल्कुल tails को रोल करने के साथ जीतता है, उस मौके को गुणा करके प्राप्त किया जाता है, जिससे दूसरा खिलाड़ी या अधिक पूंछ रोल करता है , बराबर ।n f ( n ) जी ( n )nnf(n)G(n)

सभी संभावित पर सममिंग करने से पहले खिलाड़ी के जीतने की संभावना बढ़ जाती हैn

n=0f(n)G(n)53.290977425133892%.

यह आधे समय से लगभग अधिक है।3%

सामान्य तौर पर, किसी भी धनात्मक पूर्णांक जगह , उत्तर हाइपरजोमेट्रिक फ़ंक्शन के संदर्भ में दिया जा सकता है: यह इसके बराबर हैमी10m

1/2+22m12F1(m,m,1,1/4).

सिर के एक मौका के साथ एक पक्षपाती सिक्के का उपयोग करते समय , यह सामान्य हो जाता हैp

12+12(p2m)2F1(m,m,1,(1p)2).

यहां Rइस तरह के दस लाख खेलों का अनुकरण है। यह अनुमान की रिपोर्ट करता है । सैद्धांतिक परिणाम की तुलना करने के लिए एक परिकल्पना परीक्षण में का जेड-स्कोर है , जो एक महत्वहीन अंतर है।- 0.8430.53250.843

n.sim <- 1e6
set.seed(17)
xy <- matrix(rnbinom(2*n.sim, 10, 1/2), nrow=2)
p <- mean(xy[1,] <= xy[2,])
cat("Estimate:", signif(p, 4), 
    "Z-score:", signif((p - 0.532909774) / sqrt(p*(1-p)) * sqrt(n.sim), 3))

1
बस एक नोट के रूप में जो एक नज़र में स्पष्ट नहीं हो सकता है, हमारे उत्तर संख्यात्मक रूप से सहमत हैं: (.53290977425133892 - .5) * 2 अनिवार्य रूप से मेरे द्वारा दी गई संभावना है।
डगल

1
@ डगल आपको इस ओर इशारा करने के लिए धन्यवाद। मैंने आपके उत्तर को देखा, देखा , और यह जानते हुए कि यह प्रश्न में पूछे गए उत्तर के रूप से सहमत नहीं था, मैंने नहीं पहचाना कि आपने सही गणना की थी। सामान्य तौर पर, यदि संभव हो तो अनुरोध किए गए फॉर्म में किसी भी प्रश्न के उत्तर को फ्रेम करना एक अच्छा विचार है: जो कि उत्तर की तुलना में सही और आसान होने पर इसे पहचानना आसान बनाता है। 6.6%
whuber

1
@whuber मैं वाक्यांश "इस गेम के सिमुलेशन" का जवाब दे रहा था कि खिलाड़ी पहले फ़्लिप करता है 2% जीतता है (EDIT: 3% अधिक अनुकरण करने के बाद अधिक खेल) खिलाड़ी से अधिक जो दूसरा फ़्लिप करता है "। मैं " रूप में" 2% अधिक जीत "की व्याख्या करता हूं ; सही मूल्य वास्तव में 6.6% है। मैं "जीत 2% अधिक" की व्याख्या करने के तरीके के बारे में निश्चित नहीं हूं, जिसका अर्थ है "समय का 52% जीतता है", हालांकि जाहिर है कि यही उद्देश्य था। Pr(A wins)Pr(B wins)=2%
डगल

@ डगल मैं सहमत हूं कि ओपी का विवरण भ्रमित करने वाला है और गलत भी है। हालांकि, कोड और उसके परिणाम ने यह स्पष्ट कर दिया कि उनका मतलब "आधे समय से अधिक 3%" था "अन्य खिलाड़ी की तुलना में 3% अधिक"।
whuber

1
@ शुभंकर सहमत। दुर्भाग्य से, मैंने कोड पोस्ट किए जाने से पहले सवाल का जवाब दिया, और खुद एक सिमुलेशन नहीं चलाया। :)
डगल

15

हम इस तरह से खेल को मॉडल कर सकते हैं:

  • प्लेयर A एक सिक्के को बार-बार फ़्लिप करता है जब तक कि उन्हें कुल 10 सिर नहीं मिल जाते प्राप्त करते हैं। बता दें कि 10 वीं हेड्स का टाइम इंडेक्स रैंडम वेरिएबल ।A1,A2,X
  • प्लेयर बी वही करता है। बता दें कि 10 वीं हेड्स का टाइम इंडेक्स रैंडम वैरिएबल , जो की iid कॉपी है ।YX
  • यदि , खिलाड़ी A जीतता है; अन्यथा खिलाड़ी बी जीत जाता है। अर्थात्,XY
    Pr(A wins)=Pr(XY)=Pr(X>Y)+Pr(X=Y)Pr(B wins)=Pr(Y>X)=Pr(X>Y).

जीत दर में अंतर इस प्रकार है

Pr(X=Y)=kPr(X=k,Y=k)=kPr(X=k)2.

जैसा कि आपको संदेह है, (और ) को अनिवार्य रूप से एक नकारात्मक द्विपद वितरण के अनुसार वितरित किया जाता है। इसके लिए सूचनाएं बदलती रहती हैं, लेकिन विकिपीडिया के मानकीकरण में , हमारे पास "विफलता" के रूप में सिर है और "सफलता" के रूप में पूंछता है; प्रयोग बंद करने से पहले हमें "विफलताओं" (सिर) की आवश्यकता है, और सफलता की संभावना । फिर "सफलताओं" की संख्या, जो , में और टक्कर की संभावना जो मैथमैटिक हमें आसानी से बताता है किXYआर = 10 पी = 1r=10p=12X10

Pr(X10=k)=(k+9k)210k,
Pr(X=Y)=k=0(k+9k)222k20,
7649952511622614676.6%

इस प्रकार प्लेयर B की जीत दर , और प्लेयर A's ।Pr(Y>X)46.7%619380496116226146753.3%


प्रमुखों को एक पंक्ति में नहीं होना चाहिए, सिर्फ 10 कुल। मुझे लगता है कि आप क्या तय कर रहे हैं।
डेमेट्री पैनानोस

6
(+1) मुझे यह दृष्टिकोण पसंद आया है जिसे मैंने पोस्ट किया था क्योंकि यह कम्प्यूटेशनल रूप से सरल है: इसमें केवल प्रायिकता फ़ंक्शन की आवश्यकता होती है, जिसमें द्विपद गुणांक के संदर्भ में एक सरल अभिव्यक्ति होती है।
whuber

1
मैंने अंतिम पैराग्राफ की जगह एक एडिट प्रस्तुत किया है, जिसमें दूसरे उत्तर के अंतर के बारे में बताया गया है कि उनके परिणाम वास्तव में समान हैं।
मोंटी हार्डर

1

बता दें कि ऐसी घटना हो सकती है कि खिलाड़ी रोल ऑन हो जाता है इससे पहले कि मैं दूसरे खिलाड़ी के हेड करता हूं, और पहले दो फ्लैप हो जाएं जिनमें सैंपल स्पेस जहां h का मतलब हेड्स हो और tails, और ।EijX{hh,ht,th,tt}pijPr(Eij)

फिर pij=Pr(Ei1j1|X=hh)Pr(X=hh)+Pr(Ei1j|X=ht)Pr(X=ht)+Pr(Eij1|X=th)Pr(X=th)+Pr(Eij|X=tt)Pr(X=tt)

एक मानक सिक्का अर्थ है किPr(X=)=1/4pij=1/4[pi1j1+pi1j+pij1+pij]

, लिए हलpij=1/3[pi1j1+pi1j+pij1]

लेकिन और , जिसका अर्थ है कि पुनरावृत्ति पूरी तरह से समाप्त हो जाती है। हालांकि, एक सीधा भोला पुनरावर्ती कार्यान्वयन खराब प्रदर्शन का कारण होगा क्योंकि शाखाएं प्रतिच्छेद करती हैं।p0j=p00=1pi0=0

एक कुशल कार्यान्वयन में जटिलता और मेमोरी जटिलता । यहाँ हास्केल में एक साधारण गुना लागू किया गया है:O(ij)O(min(i,j))

Prelude> let p i j = last. head. drop j $ iterate ((1:).(f 1)) start where
  start = 1 : replicate i 0;
  f c v = case v of (a:[]) -> [];
                    (a:b:rest) -> sum : f sum (b:rest) where
                     sum = (a+b+c)/3 
Prelude> p 0 0
1.0
Prelude> p 1 0
0.0
Prelude> p 10 10
0.5329097742513388
Prelude> 

अद्यतन: ऊपर टिप्पणी में किसी ने पूछा कि क्या एक पंक्ति में 10 सिर रोल करने के लिए मान लिया गया था या नहीं। तो घटना है कि रोल पर खिलाड़ी मैं एक पंक्ति में सिर flips इससे पहले कि अन्य खिलाड़ी एक पंक्ति में मैं सिर flips, यह देखते हुए कि वे पहले से ही क्रमशः k और l लगातार सिर फ़्लिप किया।Ekl

ऊपर से पहले की तरह आगे बढ़ रहे हैं, लेकिन इस बार पहले फ्लिप पर केवल जहांpk,l=11/2[pl,k+1+pl,0]pil=pii=1,pki=0

यह अज्ञात और एक अद्वितीय समाधान के साथ एक रैखिक प्रणाली है ।i2

इसे पुनरावृति योजना में परिवर्तित करने के लिए, बस एक पुनरावृति संख्या और एक संवेदनशीलता कारक :nϵ

pk,l,n+1=1/(1+ϵ)[ϵpk,l,n+11/2(pl,k+1,n+pl,0,n)]

चुनें और बुद्धिमानी से और कुछ ही कदम के लिए यात्रा चलाने के लिए और संशोधन पद की निगरानी। ϵpk,l,0

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.