ब्रेन टीज़र: एक पक्षपाती (सिर) = पी वाले पक्षपाती सिक्के का उपयोग करके समान संभावना वाले 7 पूर्णांक कैसे उत्पन्न करें?


58

यह एक प्रश्न है जो मैंने ग्लासडोर पर पाया है : कोई एक सिक्के का उपयोग करके समान संभावना के साथ 7 पूर्णांक कैसे उत्पन्न करता है जिसमें एक ?Pr(Head)=p(0,1)

मूल रूप से, आपके पास एक सिक्का है जो उचित हो सकता है या नहीं हो सकता है, और यह आपके पास एकमात्र यादृच्छिक-संख्या उत्पन्न करने वाली प्रक्रिया है, इसलिए यादृच्छिक संख्या जनरेटर के साथ आते हैं जो पूर्णांक 1 से 7 तक आउटपुट करता है जहां इनमें से प्रत्येक पूर्णांक प्राप्त करने की संभावना है। 1/7 है।

डेटा की दक्षता प्रक्रिया उत्पन्न करता है।



12
इसे पूरा करने के लिए असंख्य तरीके हैं। प्रश्न का एक और दिलचस्प संस्करण कुछ अच्छी तरह से परिभाषित अर्थों में सर्वोत्तम विधि के लिए पूछता है। सर्वश्रेष्ठ की एक प्राकृतिक भावना उत्पन्न पूर्णांक प्रति flips की कम से कम अपेक्षित संख्या होगी। एक और दिलचस्प संस्करण सभी संभावित समाधानों का वर्णन करना है (जो कि सिक्का के स्वतंत्र फ़्लिप पर भरोसा करते हैं और अधिक कुछ नहीं)।
whuber

1
@ अच्छा सुझाव, मैंने आपकी टिप्पणी को प्रतिबिंबित करने के लिए प्रश्न संपादित किया है।
अमेजोनियन

<<< मूल रूप से, आपके पास एक सिक्का है जो उचित हो सकता है या नहीं भी हो सकता है, और यह आपके पास एकमात्र रैंडम-नंबर जनरेट करने की प्रक्रिया है >>> क्या इसका मतलब यह है कि सिक्के को किसी अन्य विधि में इस्तेमाल करने के बजाय उसे फ़्लिप करना और सिर की जाँच करना। बनाम पूंछ "निषिद्ध" है, क्योंकि यह एक और यादृच्छिक-संख्या उत्पन्न करने वाली प्रक्रिया होगी?
TinglTanglbus

9
सिक्के पर वर्ष का मॉड 7।
Nat

जवाबों:


56

सिक्के को दो बार पलटें। यदि यह भूमि HHया TT, इसे अनदेखा करें और इसे दो बार फिर से फ्लिप करें।

अब, सिक्के के ऊपर HTया आने की समान संभावना है TH। यदि यह आता है HT, तो इसे कॉल करें H1। यदि यह आता है TH, तो इसे कॉल करें T1

प्राप्त करते रहें H1या T1जब तक आपके पास एक पंक्ति में तीन न हों। ये तीन परिणाम आपको नीचे दी गई तालिका के आधार पर एक संख्या देते हैं:

H1 H1 H1 -> 1
H1 H1 T1 -> 2
H1 T1 H1 -> 3
H1 T1 T1 -> 4
T1 H1 H1 -> 5
T1 H1 T1 -> 6
T1 T1 H1 -> 7
T1 T1 T1 -> [Throw out all results so far and repeat]

मेरा तर्क है कि यह पूरी तरह से ठीक काम करेगा, हालांकि आपके पास इस प्रक्रिया में बहुत सारे बर्बाद हो जाएंगे!


4
एकमात्र बाधा यह है कि सिर की संभावना "पी" है। ध्यान दें कि पी , या 1 हो सकता है । तो यह काम करने की गारंटी नहीं है, लेकिन साइकोरैक्स (या सेफ़ान) उन मामलों में भी काम करेगा। 01
गुंग - फिर से बहाल करें मोनिका

8
@ गुंग: मुझे यकीन नहीं है कि मैं दो सिर, या दो पूंछ वाले सिक्के के लिए काम करूंगा।
एस। कोलासा -

6
संभावना साथ यह परिमित समय में समाप्त हो जाएगा। 1
क्लार्क

18
इसे वॉन-न्यूमन व्हाइटनिंग कहा जाता है।
डॉनफुसिली

4
आप अनुक्रम से एन्ट्रापी को और अधिक पूरी तरह से निकालने के लिए वॉन न्यूमैन एक्सट्रैक्टर को पुनरावृत्त कर सकते हैं। सभी एचएच और टीटी जोड़े को इकट्ठा करें, विचार करें कि एक अनुक्रम, वॉन न्यूमैन एक्सट्रैक्टर को उस पर लागू करें, आदि ..
एक सीमन्स

47

मान लें कि p(0,1)

चरण 1 :। 5 बार सिक्का उछालें।

अगर नतीजा है

, वापसी 1 और बंद करो।(H,H,H,T,T)1

, 2 लौटेंऔर बंद करें।(H,H,T,T,H)2

, वापसी 3 और बंद करो।(H,T,T,H,H)3

, वापसी 4 और बंद करो।(T,T,H,H,H)4

, 5 लौटेंऔर बंद करें।(T,H,H,H,T)5

, वापसी 6 और बंद करो।(H,H,T,H,T)6

, वापसी 7 और बंद करो।(H,T,H,T,H)7

चरण 2 :। यदि परिणाम उपरोक्त में से कोई नहीं है, तो चरण 1 को दोहराएं।

ध्यान दें कि के मूल्य की परवाह किए बिना , ऊपर सूचीबद्ध सात परिणामों में से प्रत्येक में प्रायिकता q = p 3 ( 1 - p ) 2 है , और सिक्के के टॉस की अपेक्षित संख्या 5 हैp(0,1)q=p3(1p)2 । Tosser का मूल्य पता करने की जरूरत नहीं हैपी(सिवाय इसके किपी0औरपी1); यह गारंटी है कि सात पूर्णांकों समान रूप से जब यह समाप्त हो जाता है प्रयोग द्वारा लौटाए जाने की संभावना है (और यह संभावना के साथ समाप्त करने के लिए गारंटी है1)।57क्षपीपी0पी11


6
क्या हम इसके लिए अपेक्षित संख्या को कम कर सकते हैं या तो यहाँ निर्दिष्ट अनुक्रम को अनुमति दे सकते हैं या प्रत्येक फ्लिप के साथ उस क्रम को उलटा कर सकते हैं। जैसे: 1 के लिए, या तो (एच, एच, एच, टी, टी) या (टी, टी, टी, एच, एच)?
अधिक

5
आप पूरक भी जोड़ सकते हैं। यदि परिणाम (एच, एच, एच, टी, टी) या (टी, टी, टी, एच), रिटर्न 1 और स्टॉप आदि है, तो उस स्थिति में प्रत्येक परिणाम की संभावना हैक्ष=पी3(1-पी)2+पी2(1-पी)3
सेक्स्टस एम्पिरिकस

2
यदि परिणाम किसी भी (एच, एच, एच, टी, टी) व्यवस्था के साथ नहीं है, तो क्या यह संभव नहीं होगा कि आप एक और सिक्का-फ्लिप जोड़ सकें? अतिरिक्त सिक्का-टॉस के साथ आपको (एच, एच, एच, टी, टी, टी) और (एच, एच, टी, टी, टी) और प्रत्येक एक्सटी (7-एक्स) एच संयोजन की एक और मैपिंग की आवश्यकता होगी 1 से 7 की संख्या में 7 या अधिक अलग-अलग ऑर्डर की व्यवस्था की जा सकती है। सभी 5 सिक्कों को वापस लेने के बजाय यह केवल 1 अतिरिक्त टॉस जोड़ेगा, लेकिन यह सुनिश्चित नहीं करेगा कि यह काम करता है: D
TinglTanglbus

5
हो सकता है कि सिक्का को तुरंत 7 बार झटकने के लिए यह सबसे अच्छी बात हो सकती है, क्योंकि इसकी गारंटी है, कि आपको इसमें से एक यादृच्छिक संख्या मिलेगी (केवल अपवाद इसलिए, कि सिक्का सभी 7 प्रयासों को पूरा करता है या पूंछता है) । तो 7 टोज़ के साथ आप 1 से 6 सिर तक समाप्त हो सकते हैं (i इसके व्यर्थ के बाद से यहां 0 और 7 विकल्प को छोड़ दें)। यदि एक सिर पर 7 (एच, टी, टी, टी, टी, टी) की अलग-अलग व्यवस्था संभव है; यदि 2 इसके 21 प्रमुख हैं; यदि 3 इसके 35 प्रमुख हैं; यदि 4 35 सिर; यदि 5 21 सिर; अगर 6 7 सिर; प्रत्येक को पूरी तरह से 1-7 से बिना किसी संयोजन के खो जाने के लिए मैप किया जा सकता है।
TinglTanglbus

2
@TinglTanglbus यह अनिवार्य रूप से मार्टिज़न
वेटरिंग्स का

22

दिलीप सरवटे द्वारा वर्णित मामले को सामान्य बनाना

अन्य उत्तरों में वर्णित कुछ विधियाँ एक ऐसी योजना का उपयोग करती हैं जिसमें आप n सिक्कों के अनुक्रम को 'टर्न' में फेंक देते हैं और परिणाम के आधार पर आप 1 या 7 के बीच की संख्या चुनते हैं और टर्न को त्याग देते हैं और फिर से फेंक देते हैं।

चाल संभावनाओं के विस्तार में खोजने के लिए एक ही संभावना pk(1p)nk साथ 7 परिणामों के एक से अधिक है और एक दूसरे के खिलाफ उन मेल खाता है।

क्योंकि परिणामों की कुल संख्या 7 से अधिक नहीं है, हमारे पास कुछ परिणाम हैं जो हम किसी संख्या को निर्दिष्ट नहीं कर सकते हैं, और कुछ संभावना है कि हमें परिणामों को त्यागने और शुरू करने की आवश्यकता है।


7 सिक्का फ्लिप्स प्रति मोड़ का उपयोग करने का मामला

सहज रूप से हम कह सकते हैं कि पासा को सात बार रोल करना बहुत दिलचस्प होगा। चूंकि हमें केवल 27 संभावनाओं में से 2 को बाहर फेंकने की आवश्यकता है । अर्थात्, 7 बार सिर और 0 बार सिर।

अन्य सभी 272 संभावनाओं के लिए हमेशा एक ही संख्या के 7 मामलों की एक संख्या होती है। 1 सिर के साथ 7 मामले, 2 सिर वाले 21 मामले, 3 सिर वाले 35 मामले, 4 सिर वाले 35 मामले, 5 सिर वाले 21 मामले और 6 सिर वाले 7 मामले।

इसलिए यदि आप संख्या की गणना करते हैं (0 सिर और 7 सिर को छोड़कर)

X=k=17(k1)Ck

Ck साथ बर्नौली ने चर (मान 0 या 1) वितरित किया, तो X modulo 7 सात संभावित परिणामों के साथ एक समान चर है।


सिक्के के विभिन्न संख्याओं की तुलना प्रति मोड़ से होती है

सवाल बना हुआ है कि प्रति बारी रोल की इष्टतम संख्या क्या होगी। प्रति बार अधिक डिस को रोल करने से आपकी लागत अधिक हो जाती है, लेकिन आप फिर से रोल करने की संभावना कम कर देते हैं।

नीचे दी गई छवि पहले कुछ संख्याओं के लिए एक मैनुअल संगणना दिखाती है, जो प्रति बार पलटती है। (संभवत: एक विश्लेषणात्मक समाधान हो सकता है, लेकिन मेरा मानना ​​है कि यह कहना सुरक्षित है कि 7 सिक्का फ़्लिप वाला एक सिस्टम सिक्का फ़्लिप की आवश्यक संख्या के लिए अपेक्षित मूल्य के बारे में सबसे अच्छा तरीका प्रदान करता है)

सिक्का फ़्लिप की अपेक्षित संख्या

# plot an empty canvas
plot(-100,-100,
     xlab="flips per turn",
     ylab="E(total flips)",
     ylim=c(7,400),xlim=c(0,20),log="y")
title("expectation value for total number of coin flips
(number of turns times flips per turn)")

# loop 1
# different values p from fair to very unfair 
# since this is symmetric only from 0 to 0.5 is necessary 

# loop 2
# different values for number of flips per turn
# we can only use a multiple of 7 to assign 
#   so the modulus will have to be discarded
#   from this we can calculate the probability that the turn succeeds
#   the expected number of flips is 
#       the flips per turn 
#             divided by 
#       the probability for the turn to succeed 

for (p in c(0.5,0.2,0.1,0.05)) {
  Ecoins <- rep(0,16)
  for (dr in (5:20)){
    Pdiscards = 0
    for (i in c(0:dr)) { 
      Pdiscards = Pdiscards + p^(i)*(1-p)^(dr-i) * (choose(dr,i) %% 7)
    }
    Ecoins[dr-4] = dr/(1-Pdiscards)
  }
  lines(5:20, Ecoins)
  points(5:20, Ecoins, pch=21, col="black", bg="white", cex=0.5)
  text(5, Ecoins[1], paste0("p = ",p), pos=2)
}

एक प्रारंभिक रोक नियम का उपयोग करना

नोट: नीचे की गणना, फ़्लिप की संख्या के प्रत्याशित मूल्य के लिए, एक उचित सिक्का p=0.5 , यह अलग-अलग p लिए ऐसा करने के लिए गड़बड़ हो जाएगा , लेकिन सिद्धांत एक ही रहता है (हालांकि अलग-अलग किताबों को रखने वाला) मामलों की जरूरत है)

हमें मामलों को चुनने में सक्षम होना चाहिए ( X के लिए सूत्र के बजाय ) जैसे कि हम पहले रोक सकते हैं।

  • 5 सिक्का फ़्लिप के साथ हमारे पास सिर और पूंछ के छह संभावित अलग-अलग असंक्रमित सेट हैं:

    1 + 5 + 10 + 10 + 5 + 1 आदेश दिया सेट

    और हम एक संख्या चुनने के लिए दस मामलों के साथ समूहों का उपयोग कर सकते हैं (जो कि 2 सिर या 2 पूंछ वाले समूह के साथ समूह है) (समान संभावना के साथ)। यह 2 ^ 5 = 32 मामलों में से 14 में होता है। यह हमें छोड़ देता है:

    1 + 5 + 3 + 3 + 5 + 1 आदेश दिया सेट

  • एक अतिरिक्त (6-वें) सिक्के के फ्लिप के साथ हमारे पास सिर और पूंछ के सात संभावित अलग-अलग अनियंत्रित सेट हैं:

    1 + 6 + 8 + 6 + 8 + 6 + 1 का आदेश दिया सेट

    और हम एक संख्या चुनने के लिए आठ मामलों के साथ समूहों का उपयोग कर सकते हैं (जो कि 3 प्रमुखों या 3 पूंछ वाले समूह के साथ समूह है) (समान संभावना के साथ)। यह 2 में से 14 * (2 ^ 5-14) = 36 मामलों में होता है। यह हमें छोड़ देता है:

    1 + 6 + 1 + 6 + 1 + 6 + 1 आदेश दिया सेट

  • एक और (7-वें) अतिरिक्त सिक्का फ्लिप के साथ हमारे पास सिर और पूंछ के आठ संभावित अलग-अलग अनियंत्रित सेट हैं:

    1 + 7 + 7 + 7 + 7 + 7 + 7 + 1 आदेश दिया सेट

    और हम एक संख्या चुनने के लिए सात मामलों (सभी पूंछ और सभी प्रमुख मामलों को छोड़कर) के साथ समूहों का उपयोग कर सकते हैं। यह 44 में से 42 मामलों में होता है। यह हमें छोड़ देता है:

    1 + 0 + 0 + 0 + 0 + 0 + 0 + 1 आदेश दिया सेट

    (हम इसे जारी रख सकते हैं लेकिन केवल 49-वें चरण में यह हमें एक फायदा देता है)

तो एक नंबर का चयन करने की संभावना

  • 5 फ्लिप्स में 1432=716
  • 6 फ़्लिप में 9161436=732
  • 7 फ़्लिप में 11324244=231704
  • 7 फ़्लिप में नहीं 1716732231704=227

यह एक बारी में सशर्त की संख्या के लिए उम्मीद का मूल्य बनाता है, सशर्त है कि सफलता और p = 0.5 है:

5716+6732+7231704=5.796875

फ़्लिप की कुल संख्या के लिए उम्मीद का मूल्य (जब तक कि कोई सफलता नहीं है), सशर्त है कि p = 0.5, बन जाता है:

(5716+6732+7231704)2727-2=539=५.८८,८८९


NcAdams द्वारा उत्तर में इस रोक-नियम रणनीति की भिन्नता का उपयोग किया गया है (प्रत्येक बार दो नए सिक्के फ़्लिप के साथ आते हैं), लेकिन सभी फ़्लिप को बेहतर ढंग से चुनना नहीं है।

क्लिड द्वारा इसका उत्तर भी समान हो सकता है, हालांकि एक असमान चयन नियम भी हो सकता है कि प्रत्येक दो सिक्के के एक नंबर को फ़्लिप किया जा सकता है, लेकिन समान संभावना के साथ जरूरी नहीं है (एक विसंगति जिसे बाद में सिक्का फ़्लिप के दौरान मरम्मत किया जा रहा है)


अन्य तरीकों से तुलना

समान सिद्धांत का उपयोग करने वाले अन्य तरीके NcAdams और AdamO द्वारा एक हैं।

सिद्धांत यह है : 1 और 7 के बीच की संख्या के लिए एक निर्णय एक निश्चित संख्या में सिर और पूंछ के बाद किया जाता है। एक के बाद एक्स flips की संख्या, प्रत्येक निर्णय है कि एक नंबर की ओर जाता है के लिए मैं वहां भी इसी तरह, समान रूप से संभावित, निर्णय है कि एक नंबर की ओर जाता है है जे (हेड्स और टेल्स लेकिन सिर्फ एक अलग क्रम में एक ही नंबर)। सिर और पूंछ की कुछ श्रृंखला शुरू करने का निर्णय ले सकती है।

इस तरह के तरीकों के लिए यहां रखा गया सबसे अधिक कुशल है क्योंकि यह निर्णय जितनी जल्दी हो सके करता है (जैसे ही सिर और पूंछ के 7 बराबर संभावना अनुक्रमों के लिए एक संभावना है, एक्स -फ्लिप फ्लिप के बाद , हम इसका उपयोग कर सकते हैं उन्हें एक संख्या पर निर्णय लेने के लिए और हमें उन मामलों में से एक का सामना करने पर आगे फ्लिप करने की आवश्यकता नहीं है)।

यह नीचे दी गई छवि और सिमुलेशन द्वारा दिखाया गया है:

तुलना

#### mathematical part #####
set.seed(1)


#plotting this method
p <- seq(0.001,0.999,0.001)
tot <- (5*7*(p^2*(1-p)^3+p^3*(1-p)^2)+
       6*7*(p^2*(1-p)^4+p^4*(1-p)^2)+
       7*7*(p^1*(1-p)^6+p^2*(1-p)^5+p^3*(1-p)^4+p^4*(1-p)^3+p^5*(1-p)^2+p^6*(1-p)^1)+
        7*1*(0+p^7+(1-p)^7) )/
             (1-p^7-(1-p)^7)
plot(p,tot,type="l",log="y",
     xlab="p",
     ylab="expactation value number of flips"
     )

#plotting method by AdamO
tot <- (7*(p^20-20*p^19+189*p^18-1121*p^17+4674*p^16-14536*p^15+34900*p^14-66014*p^13+99426*p^12-119573*p^11+114257*p^10-85514*p^9+48750*p^8-20100*p^7+5400*p^6-720*p^5)+6*
          (-7*p^21+140*p^20-1323*p^19+7847*p^18-32718*p^17+101752*p^16-244307*p^15+462196*p^14-696612*p^13+839468*p^12-806260*p^11+610617*p^10-357343*p^9+156100*p^8-47950*p^7+9240*p^6-840*p^5)+5*
          (21*p^22-420*p^21+3969*p^20-23541*p^19+98154*p^18-305277*p^17+733257*p^16-1389066*p^15+2100987*p^14-2552529*p^13+2493624*p^12-1952475*p^11+1215900*p^10-594216*p^9+222600*p^8-61068*p^7+11088*p^6-1008*p^5)+4*(-
          35*p^23+700*p^22-6615*p^21+39235*p^20-163625*p^19+509425*p^18-1227345*p^17+2341955*p^16-3595725*p^15+4493195*p^14-4609675*p^13+3907820*p^12-2745610*p^11+1592640*p^10-750855*p^9+278250*p^8-76335*p^7+13860*p^6-
          1260*p^5)+3*(35*p^24-700*p^23+6615*p^22-39270*p^21+164325*p^20-515935*p^19+1264725*p^18-2490320*p^17+4027555*p^16-5447470*p^15+6245645*p^14-6113275*p^13+5102720*p^12-3597370*p^11+2105880*p^10-999180*p^9+371000
           *p^8-101780*p^7+18480*p^6-1680*p^5)+2*(-21*p^25+420*p^24-3990*p^23+24024*p^22-103362*p^21+340221*p^20-896679*p^19+1954827*p^18-3604755*p^17+5695179*p^16-7742301*p^15+9038379*p^14-9009357*p^13+7608720*p^12-
           5390385*p^11+3158820*p^10-1498770*p^9+556500*p^8-152670*p^7+27720*p^6-2520*p^5))/(7*p^27-147*p^26+1505*p^25-10073*p^24+49777*p^23-193781*p^22+616532*p^21-1636082*p^20+3660762*p^19-6946380*p^18+11213888*p^17-
           15426950*p^16+18087244*p^15-18037012*p^14+15224160*p^13-10781610*p^12+6317640*p^11-2997540*p^10+1113000*p^9-305340*p^8+55440*p^7-5040*p^6)
lines(p,tot,col=2,lty=2)

#plotting method by NcAdam
lines(p,3*8/7/(p*(1-p)),col=3,lty=2)

legend(0.2,500,
       c("this method calculation","AdamO","NcAdams","this method simulation"),
       lty=c(1,2,2,0),pch=c(NA,NA,NA,1),col=c(1,2,3,1))


##### simulation part ######

#creating decision table
mat<-matrix(as.numeric(intToBits(c(0:(2^5-1)))),2^5,byrow=1)[,c(1:12)]
colnames(mat) <- c("b1","b2","b3","b4","b5","b6","b7","sum5","sum6","sum7","decision","exit")

# first 5 rolls
mat[,8] <- sapply(c(1:2^5), FUN = function(x) {sum(mat[x,1:5])})

mat[which((mat[,8]==2)&(mat[,11]==0))[1:7],12] = rep(5,7) # we can stop for 7 cases with 2 heads
mat[which((mat[,8]==2)&(mat[,11]==0))[1:7],11] = c(1:7)   
mat[which((mat[,8]==3)&(mat[,11]==0))[1:7],12] = rep(5,7) # we can stop for 7 cases with 3 heads
mat[which((mat[,8]==3)&(mat[,11]==0))[1:7],11] = c(1:7)    

# extra 6th roll
mat <- rbind(mat,mat)
mat[c(33:64),6] <- rep(1,32)
mat[,9] <- sapply(c(1:2^6), FUN = function(x) {sum(mat[x,1:6])})

mat[which((mat[,9]==2)&(mat[,11]==0))[1:7],12] = rep(6,7) # we can stop for 7 cases with 2 heads
mat[which((mat[,9]==2)&(mat[,11]==0))[1:7],11] = c(1:7)   
mat[which((mat[,9]==4)&(mat[,11]==0))[1:7],12] = rep(6,7) # we can stop for 7 cases with 4 heads
mat[which((mat[,9]==4)&(mat[,11]==0))[1:7],11] = c(1:7)    

# extra 7th roll
mat <- rbind(mat,mat)
mat[c(65:128),7] <- rep(1,64)
mat[,10] <- sapply(c(1:2^7), FUN = function(x) {sum(mat[x,1:7])})

for (i in 1:6) {
  mat[which((mat[,10]==i)&(mat[,11]==0))[1:7],12] = rep(7,7) # we can stop for 7 cases with i heads
  mat[which((mat[,10]==i)&(mat[,11]==0))[1:7],11] = c(1:7)   
}


mat[1,12] = 7           # when we did not have succes we still need to count the 7 coin tosses
mat[2^7,12] = 7


draws = rep(0,100)
num = rep(0,100)
# plotting simulation
for (p in seq(0.05,0.95,0.05)) {
  n <- rep(0,1000)
  for (i in 1:1000) {
    coinflips <- rbinom(7,1,p)  # draw seven numbers
    I <- mat[,1:7]-matrix(rep(coinflips,2^7),2^7,byrow=1) == rep(0,7)                      # compare with the table
    Imatch = I[,1]*I[,2]*I[,3]*I[,4]*I[,5]*I[,6]*I[,7]        # compare with the table 
      draws[i] <- mat[which(Imatch==1),11]                 # result which number
      num[i]   <- mat[which(Imatch==1),12]                 # result how long it took
  }
  Nturn <- mean(num)                   #how many flips we made
  Sturn <- (1000-sum(draws==0))/1000   #how many numbers we got (relatively)
  points(p,Nturn/Sturn)
}

एक और छवि जिसे बेहतर तुलना के लिए पी*(1-पी) द्वारा बढ़ाया जाता है :

स्केल किए गए अपेक्षा मूल्यों के साथ तुलना

इस पोस्ट और टिप्पणियों में वर्णित तरीकों की तुलना में ज़ूम करें

तुलना के तरीके यहाँ वर्णित हैं

'7-वें चरण की सशर्त लंघन' एक मामूली सुधार है जिसे प्रारंभिक रोक नियम पर बनाया जा सकता है। इस मामले में आप 6-वें फ़्लिप के बाद समान संभावनाओं वाले समूहों का चयन नहीं करते हैं। आपके पास समान संभाव्यता वाले 6 समूह हैं, और 1 समूह थोड़े भिन्न संभाव्यता वाले हैं (इस अंतिम समूह के लिए आपको 6 अतिरिक्त या पूंछ वाले एक और अतिरिक्त समय को फ्लिप करना होगा और क्योंकि आप 7 सिर या 7 पूंछों को छोड़ देते हैं, तो आप समाप्त हो जाएंगे सभी के बाद एक ही संभावना के साथ)


StackExchangeStrike द्वारा लिखित


मैं सिर्फ n = 7 केस के लिए गणना करना शुरू करने वाला था, क्योंकि मुझे लग रहा था कि यह n = 1 से बेहतर हो सकता है। मेरा उत्थान हो, श्रीमान!
M.Herzkamp

@ M.Herzkamp में एक छोटा सा सुधार अभी भी संभव है। X की गणना के लिए एक नंबर (एक सिक्का फ्लिप) आवश्यक नहीं है , क्योंकि इसमें गुणांक 0. है यह संख्या केवल सभी प्रमुखों या सभी पूंछों के मामले को निर्धारित करने के लिए आवश्यक है, और इसे तब छोड़ा जा सकता है जब हम पहले से ही जानते हैं कि हमारे पास एक मिश्रित मामला है। CkX
सेक्सटस एम्पिरिकस

इसलिए सुधार इसे 6 से अधिक सिक्का फ्लिप्स के लिए थोड़ा नीचे लाता है, आवश्यक सिक्का फ्लैप की संख्या के लिए अपेक्षा मूल्य के रूप में। हालांकि यह प्रमाणित करना अलग होगा कि यह इष्टतम समाधान है। क्लिड द्वारा बनाई गई योजना एक विशेष संख्या के सिक्के के झंडे पर संख्या चुनने की अनुमति देती है, लेकिन समान संभावना के साथ नहीं (कम से कम उस विशेष कदम के लिए नहीं, इसे बाद में सही किया जाएगा)।
सेक्सटस एम्पिरिकस

लेकिन अगर आप यह तय कर रहे हैं कि पहले पाँच परिणामों के आधार पर छठे सिक्के को पलटना है, तो क्या प्रत्येक सेट की संभावनाएँ हैं, आपके लिए छह फ़्लिप के लिए वातानुकूलित है, अन्य सेटों के लिए भी?
संचय जूल

@ संचय आप इसे 7 स्तरों के साथ एक द्विआधारी पेड़ के रूप में आकर्षित कर सकते हैं। हम केवल नोड्स के बीच चयन करेंगे यदि समान संभावना वाले 7 हैं। यह ऐसा है जैसे आप पहले कुछ शाखाओं को काटते हैं (स्तर 5 या 6 पर)। यदि आप पसंद करते हैं, तो आप पहले के बजाय 7 कदम तक जारी रख सकते हैं, लेकिन इन विशेष मामलों के लिए 6 वें और 7 वें सिक्के के फ्लिप से फर्क नहीं पड़ता।
सेक्स्टस एम्पिरिकस

20

एक बॉक्स को सात बराबर-क्षेत्र वाले क्षेत्रों में विभाजित करें, प्रत्येक को एक पूर्णांक के साथ लेबल किया गया है। सिक्के को बॉक्स में इस तरह फेंके कि उसमें प्रत्येक क्षेत्र में उतरने की समान संभावना हो।

यह केवल हंसी में आधा है - यह अनिवार्य रूप से अनुमान लगाने जैसे उसी प्रक्रिया है π एक चक्र यह पर तैयार के साथ कागज पर चावल के दानों को छोड़ने की तरह एक शारीरिक मोंटे कार्लो प्रक्रिया का उपयोग कर,।

यह एकमात्र उत्तर में से एक है जो या p = 0 के मामले में काम करता है ।p=1p=0


2
क्या आप बॉक्स को सात बराबर-क्षेत्र वाले क्षेत्रों में विभाजित करने का एक तरीका सुझा सकते हैं, ताकि दीवारों से उछल-कूद आदि से पूर्वाग्रह को कम किया जा सके? कोण के सात सेक्टर 360/7?
मुस्कुराते हुए

1
@smci यही कारण है कि मैं यह कहता हूं कि आपको सिक्का फेंकना चाहिए ताकि प्रत्येक वर्ग में इसके उतरने की समान संभावना हो। यदि एक दीवार से उछल कर उस संभावना को प्रभावित करता है, तो आपको अपने फेंक में इसका हिसाब करना होगा।
मोनिका

17
हां, मुझे पता है, और मैं आपको इशारा कर रहा हूं कि बस यह कहना कि "इसे निष्पक्ष तरीके से फेंकें", ठीक से परिभाषित किए बिना कि इसे कैसे प्राप्त किया जाए, वास्तव में एक पूर्ण उत्तर नहीं है ... जिस स्थिति में फ़्लिपिंग-एच / टी। आधारित विधियां श्रेष्ठ हैं।
जूस

1
"समान क्षेत्र, प्रत्येक क्षेत्र में लैंडिंग की समान संभावना वाले थ्रो के साथ" व्यवहार में स्थापित करना मुश्किल हो सकता है। व्यवहार में बड़ी संख्या में "प्रैक्टिस रन" को चिन्हित करना आसान हो सकता है और फिर लैंडिंग एरिया को कंफर्टेबल जगहों पर क्रमिक रूप से उपविभाजित किया जा सकता है (जैसे कि 700 थ्रो के साथ, एक लाइन को नियमबद्ध करना, जो सबसे दूर के 100 थ्रो को काटता है, फिर अगले के लिए दूसरा है। 100 वगैरह)। एकल यादृच्छिक बिट उत्पन्न करने के लिए इसका एक सरलीकरण दो बार सिक्का फेंकना होगा - यदि पहला फेंक आगे जाता है, तो बिट है 0, और यदि दूसरा फेंक आगे जाता है तो यह है1
सिल्वरफ़िश

4
@TheScienceBoy द्वारा एक अच्छा जवाब है कि दुख की बात है कि यह एक दिलचस्प विकल्प के साथ हटा दिया गया है - प्रभावी रूप से, एक स्पिनर के रूप में सिक्के का उपयोग करके, और इसकी परिधि के साथ 7 खंडों को चिह्नित करना - जो इस उत्तर की भावना को बनाए रखता है लेकिन अधिक शारीरिक रूप से सीधा हो सकता है बाहर ले जाने के लिए!
सिल्वरफिश

8

EDIT: दूसरों की प्रतिक्रिया के आधार पर।

यहाँ एक दिलचस्प विचार है:

{1,2,3,4,5,6,7} की सूची निर्धारित करें। सूची में प्रत्येक तत्व के लिए सिक्का क्रमिक रूप से फेंक दें। यदि यह किसी विशेष तत्व के लिए भूमि की ओर सिर करता है, तो सूची से संख्या हटा दें। यदि सूची के किसी विशेष पुनरावृत्ति से सभी संख्याएं हटा दी जाती हैं, तो नमूना दोहराएं। ऐसा तब तक करें जब तक कि केवल एक संख्या शेष न हो।

drop.one <- function(x, p) {
  drop <- runif(length(x)) < p
  if (all(drop))
    return(x)
  return(x[!drop])
}

sample.recur <- function(x, p) {
  if (length(x) > 1)
    return(sample.recur(drop.one(x, p), p))
  return(x)
}

# x <- c(1:7,7:1)
x <- 1:7
p <- 0.01

out <- replicate(1e5, sample.recur(x, p))

round(prop.table(table(out)), 2)

मुझे लगभग एक समान वितरण देता है

> round(prop.table(table(out)), 2)
out
   1    2    3    4    5    6    7 
0.14 0.14 0.15 0.14 0.14 0.14 0.14 

यह नोट करना दिलचस्प है (अगर मैंने कोई गंभीर गलती नहीं की है) कि यह बाइनोमियल परिणाम उत्पन्न करने की तुलना में एक अलग परिणाम पैदा करता है क्योंकि सिक्के के 13 टोस के योग (एक परिणाम के रूप में 0 सिर की गिनती) और {0,1 मैपिंग करें , 2, ..., 12,13} सूचकांक {1,2,3, ..., 3,2,1} की पिछली सूची में। मैं यह नहीं जानता कि यह कैसे साबित किया जाए कि मेरा तरीका काम करता है।एन


सिक्का फेंकता की संख्या के लिए अपेक्षा मूल्य का मूल्यांकन

संख्या सिक्का फेंकता के लिए प्रत्याशा मूल्य की गणना नीचे दिए गए संक्रमण मैट्रिक्स का उपयोग करके की जा सकती है (सवाल का जवाब जब हम गैर-सफाया संख्याओं से शुरू करते हैं तो y गैर-समाप्त संख्याओं को प्राप्त करने की संभावना क्या है )एक्सy

=[क्ष700000117पी1क्ष6क्ष600000021पी2क्ष56पी1क्ष5क्ष50000035पी3क्ष415पी2क्ष45क्ष4क्ष4000035पी4क्ष320पी3क्ष310पी2क्ष34पी1क्ष3क्ष300021पी5क्ष215पी4क्ष210पी3क्ष26पी2क्ष23पी1क्ष2क्ष2007पी6क्ष16पी5क्ष15पी4क्ष14पी3क्ष13पी2क्ष12पी1क्ष100पी7पी6पी5पी4पी3पी200]

(-मैं)v=0

(n)=247पी(1-पी)

सिक्का फ़्लिप के लिए अपेक्षा मूल्य की तुलना

पी>2/3 । लेकिन साथ ही प्रदर्शन गैर-सममित है। एक सममित और बेहतर समग्र प्रदर्शन किया जा सकता है, जब एक संभाव्य स्विचिंग नियम बनाया जाएगा, जो निर्णय नियम को पूंछ से सिर तक बदल देता है जब सिर अनुचित होता है।

समाधान wxMaxima के साथ मिला

M: matrix(
 [(1-p)^7,        0,          0,0,0,0,1,1], 
 [7* p*(1-p)^6,   (1-p)^6,        0,0,0,0,0,0], 
 [21*p^2*(1-p)^5, 6*p*(1-p)^5,    (1-p)^5,0,0,0,0,0], 
 [35*p^3*(1-p)^4, 15*p^2*(1-p)^4, 5*p*(1-p)^4,(1-p)^4,0,0,0,0], 
 [35*p^4*(1-p)^3, 20*p^3*(1-p)^3, 10*p^2*(1-p)^3,4*p*(1-p)^3,(1-p)^3,0,0,0], 
 [21*p^5*(1-p)^2, 15*p^4*(1-p)^2, 10*p^3*(1-p)^2,6*p^2*(1-p)^2,3*p*(1-p)^2,(1-p)^2,0,0], 
 [7* p^6*(1-p)^1, 6*p^5*(1-p),    5*p^4*(1-p),4*p^3*(1-p),3*p^2*(1-p),2*(1-p)*p,0,0], 
 [p^7,        p^6,        p^5,p^4,p^3,p^2,0,0]
);
z: nullspace(M-diagmatrix(8,1));
x : apply (addcol, args (z));
t : [7,6,5,4,3,2,0,0];
plot2d(t.x/x[7],[p,0,1],logy);

आर में गणना

# plotting empty canvas
plot(-100,-100,
     xlab="p",
     ylab="E(total flips)",
     ylim=c(10,1000),xlim=c(0,1),log="y")

# plotting simulation
for (p in seq(0.1,0.9,0.05)) {

  n <- rep(0,10000)
  for (i in 1:10000) {
    success  = 0
    tests = c(1,1,1,1,1,1,1)     # start with seven numbers in the set
    count = 0
    while(success==0) {
      for (j in 1:7)  {
        if (tests[j]==1) {
          count = count + 1
          if  (rbinom(1,1,p) == 1) {
            tests[j] <- 0        # elliminate number when we draw heads
          }
        }
      }
      if (sum(tests)==1) {
        n[i] = count
        success = 1              # end     when 1 is left over
      }
      if (sum(tests)==0) {
        tests = c(1,1,1,1,1,1,1) # restart when 0 are left over
      }
    }
  }
  points(p,mean(n))
}

# plotting formula
p <- seq(0.001,0.999,0.001)

tot <- (7*(p^20-20*p^19+189*p^18-1121*p^17+4674*p^16-14536*p^15+34900*p^14-66014*p^13+99426*p^12-119573*p^11+114257*p^10-85514*p^9+48750*p^8-20100*p^7+5400*p^6-720*p^5)+6*
    (-7*p^21+140*p^20-1323*p^19+7847*p^18-32718*p^17+101752*p^16-244307*p^15+462196*p^14-696612*p^13+839468*p^12-806260*p^11+610617*p^10-357343*p^9+156100*p^8-47950*p^7+9240*p^6-840*p^5)+5*
    (21*p^22-420*p^21+3969*p^20-23541*p^19+98154*p^18-305277*p^17+733257*p^16-1389066*p^15+2100987*p^14-2552529*p^13+2493624*p^12-1952475*p^11+1215900*p^10-594216*p^9+222600*p^8-61068*p^7+11088*p^6-1008*p^5)+4*(-
    35*p^23+700*p^22-6615*p^21+39235*p^20-163625*p^19+509425*p^18-1227345*p^17+2341955*p^16-3595725*p^15+4493195*p^14-4609675*p^13+3907820*p^12-2745610*p^11+1592640*p^10-750855*p^9+278250*p^8-76335*p^7+13860*p^6-
    1260*p^5)+3*(35*p^24-700*p^23+6615*p^22-39270*p^21+164325*p^20-515935*p^19+1264725*p^18-2490320*p^17+4027555*p^16-5447470*p^15+6245645*p^14-6113275*p^13+5102720*p^12-3597370*p^11+2105880*p^10-999180*p^9+371000
   *p^8-101780*p^7+18480*p^6-1680*p^5)+2*(-21*p^25+420*p^24-3990*p^23+24024*p^22-103362*p^21+340221*p^20-896679*p^19+1954827*p^18-3604755*p^17+5695179*p^16-7742301*p^15+9038379*p^14-9009357*p^13+7608720*p^12-
 5390385*p^11+3158820*p^10-1498770*p^9+556500*p^8-152670*p^7+27720*p^6-2520*p^5))/(7*p^27-147*p^26+1505*p^25-10073*p^24+49777*p^23-193781*p^22+616532*p^21-1636082*p^20+3660762*p^19-6946380*p^18+11213888*p^17-
  15426950*p^16+18087244*p^15-18037012*p^14+15224160*p^13-10781610*p^12+6317640*p^11-2997540*p^10+1113000*p^9-305340*p^8+55440*p^7-5040*p^6)
lines(p,tot)

#plotting comparison with alternative method
lines(p,3*8/7/(p*(1-p)),lty=2)

legend(0.2,500,
       c("simulation","calculation","comparison"),
       lty=c(0,1,2),pch=c(1,NA,NA))

1
चतुर विचार (+1)। सहज रूप से, यह काम करना चाहिए, क्योंकि समरूपता किसी विशेष संख्या के प्रति पूर्वाग्रह को कम करने के लिए प्रकट होगी। फिर भी, मुझे एक प्रमाण देखना अच्छा लगेगा।
मोनिका

6
यह विचार वास्तव में अच्छा है, लेकिन सिर के लिए एक उच्च संभावना के साथ (उस नंबर को खटखटाएं) मुझे लगता है कि पंक्ति में अंतिम संख्या "जीवित" करने के लिए सबसे अच्छा मौका है क्योंकि सभी अन्य संक्रमित 1 रन पर होने से पहले बहुत संभावना से बाहर किक मारते हैं? हो सकता है कि क्रमिक रूप से सिक्का न फेंककर इसे बदला जा सके लेकिन x के सभी नंबरों के समानांतर? स्क्रिप्ट का रनटाइम मेरे
हिसाब से

2
मैं @TinglTanglbus से सहमत हूं - जब मैं सेट करता p <- 0.99हूं तो मुझे आउटपुट मिलता है0.89 0.02 0.02 0.02 0.02 0.02 0.02
सिल्वरफ़िश

6
'राउंड्स' में एलिमिनेशन नहीं करना पूर्वाग्रह की समस्या को ठीक करेगा? 7 नंबर से शुरू करें। हर शेष संख्या के लिए सिक्का टॉस करें, और सिर को फेंकने वाले को खत्म करें। यदि एक राउंड में सभी शेष संख्याएं समाप्त हो जाती हैं, तो उस राउंड के परिणामों को खरोंचें और फिर से प्रयास करें। मुझे नहीं पता कि इसे कैसे साबित किया जाए, लेकिन सहजता से संख्याओं के क्रम में कोई फर्क नहीं पड़ता कि क्या वे 'विजेता' हैं
फिल

1
पी=0.01

5

सवाल थोड़ा अस्पष्ट है, क्या यह पूछ रहा है "समान यादृच्छिकता के साथ एक यादृच्छिक पूर्णांक 7 से कम या समान संभावना के साथ उत्पन्न", या यह पूछ रहा है "समान संभाव्यता के साथ 7 यादृच्छिक पूर्णांक उत्पन्न करते हैं?" - लेकिन पूर्णांक का स्थान क्या है?!?

मुझे लगता है कि यह पूर्व है, लेकिन मैं जिस तर्क को लागू कर रहा हूं उसे बाद के मामले में भी बढ़ाया जा सकता है, एक बार यह समस्या साफ हो जाती है।

एक पक्षपाती सिक्के के साथ, आप निम्नलिखित प्रक्रिया का पालन करके एक उचित सिक्का का उत्पादन कर सकते हैं: https://en.wikipedia.org/wiki/Fair_coin#Fair_results_from_a_biased_coin

एक नंबर 7 या उससे कम बाइनरी में तीन {0,1} अंकों के रूप में लिखा जा सकता है। इसलिए सभी को करने की आवश्यकता है तीन बार उपरोक्त प्रक्रिया का पालन करें, और द्विआधारी संख्या को वापस दशमलव में परिवर्तित करें।


1
@NcAdams के साथ मेरे जवाब की तुलना करते हुए, यह स्पष्ट है कि मैं एक संभावित वांछनीय परिणाम के रूप में 0 सहित हूं!
Cam.Davidson.Pilon

मुझे नहीं पता कि आपका उत्तर कैसे अलग है। यदि आप {0,0,0} -> 1 को शामिल करते हैं, तो {1,1,1} क्या करता है? 8 संभावनाएं हैं।
एडम जूल 5'18

1
000 0 से मैप करता है, इसलिए मेरी टिप्पणी 0 पर संभव मूल्य के रूप में शामिल है। यह ओपी एडिट से पहले और लगभग एक साथ NcAdams के रूप में पोस्ट किया गया था।
कैम। डेविडसन.पिलोन

इस उत्तर का आधा हिस्सा एक टिप्पणी है, और उत्तर की वास्तविक सामग्री केवल लिंक है। कृपया इसे लिंक करने के बजाय अपना वास्तविक उत्तर दें।
घन

3

एक समाधान जो कभी भी व्यर्थ नहीं जाता है, जो बहुत पक्षपाती सिक्कों के लिए बहुत मदद करता है।

इस एल्गोरिथ्म का नुकसान (जैसा कि लिखा गया है, कम से कम) यह है कि यह मनमाना-सटीक अंकगणित का उपयोग कर रहा है। व्यावहारिक रूप से, आप शायद पूर्णांक ओवरफ़्लो तक इसका उपयोग करना चाहते हैं, और उसके बाद ही इसे फेंक दें और प्रारंभ करें।

इसके अलावा, आपको यह जानने की जरूरत है कि पूर्वाग्रह क्या है ... जो कि आप नहीं कह सकते हैं, अगर यह सबसे भौतिक घटनाओं की तरह तापमान पर निर्भर है।


सिर का मौका मानते हुए, कहते हैं, 30%।

  • रेंज से शुरू करें [1, 8)
  • अपना सिक्का पलटें। यदि सिर, बाएं 30% का उपयोग करते हैं, तो आपकी नई सीमा है [1, 3.1)। ठीक है, सही 70% का उपयोग करें, इसलिए आपकी नई सीमा है [3.1, 8)
  • तब तक दोहराएं जब तक कि पूरी सीमा में एक ही पूर्णांक भाग न हो।

पूर्ण कोड:

#!/usr/bin/env python3
from fractions import Fraction
from collections import Counter
from random import randrange


BIAS = Fraction(3, 10)
STAT_COUNT = 100000


calls = 0
def biased_rand():
    global calls
    calls += 1
    return randrange(BIAS.denominator) < BIAS.numerator


def can_generate_multiple(start, stop):
    if stop.denominator == 1:
        # half-open range
        stop = stop.numerator - 1
    else:
        stop = int(stop)
    start = int(start)
    return start != stop


def unbiased_rand(start, stop):
    if start < 0:
        # negative numbers round wrong
        return start + unbiased_rand(0, stop - start)
    assert isinstance(start, int) and start >= 0
    assert isinstance(stop, int) and stop >= start
    start = Fraction(start)
    stop = Fraction(stop)
    while can_generate_multiple(start, stop):
        if biased_rand():
            old_diff = stop - start
            diff = old_diff * BIAS
            stop = start + diff
        else:
            old_diff = stop - start
            diff = old_diff * (1 - BIAS)
            start = stop - diff
    return int(start)


def stats(f, *args, **kwargs):
    c = Counter()
    for _ in range(STAT_COUNT):
        c[f(*args, **kwargs)] += 1

    print('stats for %s:' % f.__qualname__)
    for k, v in sorted(c.items()):
        percent = v * 100 / STAT_COUNT
        print('  %s: %f%%' % (k, percent))


def main():
    #stats(biased_rand)
    stats(unbiased_rand, 1, 7+1)
    print('used %f calls at bias %s' % (calls/STAT_COUNT, BIAS))


if __name__ == '__main__':
    main()

3
[0,1]0000...6666...

यह एकल आउटपुट के लिए समान है, है ना? बस कई के लिए बेहतर है? मुझे diff *= 7लगता है कि मैं इसे लिखूंगा ... वास्तव में, प्रत्येक प्रयास के लिए एक ही आधार का उपयोग करने की कोई विशेष आवश्यकता नहीं है।
15:11 बजे o11c

हां, यदि आप एक ही आउटपुट चाहते हैं तो यह समान है; यदि आप एक से अधिक चाहते हैं तो यह केवल दक्षता में सुधार करता है।
फेडेरिको पोलोनी

पीपी

यदि आप एकल आउटपुट चाहते हैं तो यह बिल्कुल बेकार हो जाता है। एक उचित सिक्के के लिए, मानक तकनीक (सिक्का को तीन बार रोल करें, और यदि आप TTT प्राप्त करते हैं तो दोहराएं) 24/7 = 3 + 3/7 रोल की अपेक्षित संख्या देता है। यदि आप इस अंकगणित-कोडिंग-शैली तकनीक का उपयोग करते हैं, तो आप कम से कम चार बार रोल करते हैं जब तक कि आपको एचएचएच या टीटीटी नहीं मिलता है, जो आपको 15/4 = 3 + 3/4 रोल से अधिक की अपेक्षित संख्या देता है।
पीटर शोर

3

जैसा कि पहले टिप्पणियों में उल्लेख किया गया है, यह पहेली जॉन वॉन न्यूमैन के 1951 के पेपर "नेशनल ब्यूरो ऑफ स्टैंडर्ड्स के शोध पत्रिका में प्रकाशित" विभिन्न तकनीकों का उपयोग यादृच्छिक अंकों के साथ संबंधित है:

यहाँ छवि विवरण दर्ज करें

पी(पी) (पी)=मिनट{1,2पी}एन परीक्षण के।


2

पी1पी0

हम पहले NcAdams उत्तर से प्रक्रिया का उपयोग करके एक उचित सिक्के में (संभवतः) अनुचित सिक्के को चालू करते हैं :

सिक्के को दो बार पलटें। यदि यह भूमि HHया TT, इसे अनदेखा करें और इसे दो बार फिर से फ्लिप करें।

अब, सिक्के के ऊपर HTया आने की समान संभावना है TH। यदि यह आता है HT, तो इसे कॉल करें H1। यदि यह आता है TH, तो इसे कॉल करें T1

01H1=1T1 =00.H1 H1 T10.110

1/7

1/7=0.001001001

2/7=0.010010010

3/7=0.011011011

4/7=0.100100100

5/7=0.101101101

6/7=0.110110110

nn/7(n-1)/717


1
1/7

1
1/7Σ=1(1/8)=17

1
nटी(n)=2n-62nn3
3+Σn=31-टी(n)=4.5
87*33.42

2

एडमो के जवाब से प्रेरित, यहाँ एक पायथन समाधान है जो पूर्वाग्रह से बचा जाता है:

def roll(p, n):
    remaining = range(1,n+1)
    flips = 0
    while len(remaining) > 1:
        round_winners = [c for c in remaining if random.choices(['H','T'], [p, 1.0-p]) == ['H']]
        flips += len(remaining)
        if len(round_winners) > 0:
            remaining = round_winners
        p = 1.0 - p
    return remaining[0], flips

यहां दो मुख्य परिवर्तन हैं: मुख्य एक यह है कि यदि सभी संख्याओं को एक राउंड में छोड़ दिया जाता है, तो राउंड को दोहराएं। इसके अलावा, मैं इस बात का विकल्प भी छोड़ देता हूं कि क्या हर बार सिर या पूंछ निकलती है। यह उन मामलों में आवश्यक फ़्लिप की संख्या को कम करता है जहां पी 0 = 1 के पास 0 या 1 के करीब होता है जब पी = 0.999 होता है


2
"मैं इस बात का चुनाव करता हूं कि क्या हर बार हेड्स या टेल्स का मतलब निकलता है। यह उन मामलों में जरूरी फ्लैप्स की संख्या को कम करता है, जहां पी 0 के करीब है या ~ 70% जब पी = 0.999" - स्मार्ट सोच!
सिल्वरफिश

1
अल्टरनेटिंग हेड्स या टेल्स निश्चित रूप से हेड्स को हमेशा के लिए छोड़ देने पर एक सुधार है - लेकिन शायद यह बेहतर होगा कि, प्रत्येक बचे हुए विकल्प के लिए एक सिक्का उछालने के बाद, यदि वे सभी एक ही हैं, तो हम उन सभी को फिर से दोहराते हैं, नहीं तो कम से कम जितने भी सिर होते हैं उतने ही सिर के बचे हुए विकल्पों को हम समाप्त कर देते हैं, अन्यथा हम पूंछ के अनुरूप शेष विकल्पों को समाप्त कर देते हैं।
डेविड कैरी

2

ऐसा प्रतीत होता है कि हमें प्रत्येक फ्लिप के परिणाम की मैपिंग को बदलने की अनुमति है, हर बार जब हम फ्लिप करते हैं । इसलिए, पहले सात सकारात्मक पूर्णांकों की सुविधा के लिए, हम निम्नलिखित आदेश देते हैं:

एच1
एच2

एच7
एच1

आदि

टी


पीटी

पीपी(कोई पूर्णांक उत्पन्न नहीं हुआ)=(1-पी)7

एन

गिनतीपी(बेकार बेकार है)7एन(1-पी)7

बी(पी,n=5)पी3(1-पी)2

पीडीएस(कोई पूर्णांक उत्पन्न नहीं हुआ)=1-7पी3(1-पी)2

बेकार फाल्ट की गिनती यहाँ हो जाएगी

गिनतीडीएस(बेकार बेकार है)5एन[1-7पी3(1-पी)2]

पी

गिनतीपी(बेकार बेकार है)<गिनतीडीएस(बेकार बेकार है)

7एन(1-पी)7<5एन[1-7पी3(1-पी)2]

7(1-पी)7<5[1-7पी3(1-पी)2]

पी>0.0467पी

पीपीडीएसपी0.5967

गिनतीपी(बेकार बेकार है)गिनतीडीएस(बेकार बेकार है)

0.67पी=0.10.3पी=0.20.127पी=0.4


पी(0,1)

1
@ साइकोरेक्स मैंने कुछ जोड़ा, हालांकि मुझे यकीन नहीं है कि यह आपके द्वारा सुझाई गई लाइनों के साथ है।
एलेकोस पापाडोपोलोस

एच

1
12345679999999

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