N को लगातार प्राप्त करने के लिए सिक्के की संख्या कम होने की अपेक्षा, M को लगातार दिया जाता है


10

इंटरव्यूस्ट्रीट के पास जनवरी में अपना दूसरा कोडप्रिंट था जिसमें नीचे दिए गए प्रश्न शामिल थे। प्रोग्रामेटिक उत्तर पोस्ट किया गया है लेकिन इसमें सांख्यिकीय विवरण शामिल नहीं है।

(आप Google क्रेडिट के साथ इंटरव्यूस्ट्रीट वेबसाइट पर साइन इन करके और फिर इस पृष्ठ से कॉइन टॉस की समस्या पर जाकर मूल समस्या और पोस्ट किए गए समाधान देख सकते हैं ।)

सिक्का टॉस

आपके पास एक निष्पक्ष सिक्का है जिसे आप तब तक टॉस करते रहना चाहते हैं जब तक कि आपको लगातार एन हेड्स न मिलें। आपने सिक्के को एम बार उछाला और हैरानी की बात यह है कि सभी टॉन्स का परिणाम सिर पर था।

जब तक आपको N लगातार सिर नहीं मिल जाता है, तब तक अपेक्षित अतिरिक्त टॉस की संख्या क्या है?

इनपुट:
पहली पंक्ति में मामलों की संख्या T है। अगली T लाइनों में से प्रत्येक में दो संख्याएँ N और M हैं।

आउटपुट:
आउटपुट टी लाइन्स जिसमें संबंधित टेस्ट केस के लिए उत्तर होता है। उत्तर को 2 दशमलव स्थानों तक गोल करके प्रिंट करें।

नमूना इनपुट:
4
2 0
2 1
3 3
3 2

नमूना आउटपुट:
6.00
4.00
0.00
8.00

नमूना स्पष्टीकरण:
यदि N = 2 और M = 0 है, तो आपको सिक्के को तब तक दबाए रखना होगा जब तक आपको लगातार 2 सिर न मिलें। यह दिखाना मुश्किल नहीं है कि औसतन, 6 सिक्का टॉस की आवश्यकता होती है।
यदि N = 2 और M = 1 है, तो आपको 2 लगातार प्रमुखों की आवश्यकता है और पहले से ही 1. आपके पास एक बार और टॉस करने की आवश्यकता है, चाहे जो भी हो। उस पहले टॉस में, अगर आपको सिर मिले, तो आप कर रहे हैं। अन्यथा, आपको लगातार काउंटर रीसेट के रूप में शुरू करने की आवश्यकता होती है, और जब तक आप एन = 1 निरंतर सिर प्राप्त नहीं करते हैं, तब तक आपको सिक्का उछालना पड़ता है। सिक्के के टॉस की अपेक्षित संख्या इस प्रकार है 1 + (0.5 * 0 + 0.5 * 6) = 4.0 यदि एन = 3 और एम = 3 है, तो आपको पहले से ही 3 हेड मिल चुके हैं, इसलिए आपको और अधिक टॉस की आवश्यकता नहीं है।

मेरे द्वारा आए सभी गणितीय समीकरणों में ऊपर सूचीबद्ध नमूना इनपुट डेटा के लिए सही उत्तर थे, लेकिन उनके सभी अन्य इनपुट सेटों (जो ज्ञात नहीं हैं) के लिए गलत थे। उनका प्रोग्रामेटिक सॉल्यूशन मेरे ट्राइ-टू-अप-अप-ए-समीकरण पद्धति से समस्या को अलग तरीके से हल करने के लिए प्रकट होता है। क्या कोई यह बता सकता है कि इस समीकरण को कैसे हल किया जाए?


1
यहाँ भी देखें जहाँ हमें परिणाम नीचे दिए गए डैनियल जॉनसन द्वारा दिया गया है। 2N+12M+1
दिलीप सरवटे

जवाबों:


8

यह एक कम्प्यूटेशनल अभ्यास है, इसलिए पुनरावर्ती सोचें । सिक्का फ़्लिपिंग की वर्तमान स्थिति साथ क्रमबद्ध युग्म द्वारा निर्धारित की जाती है । चलो फ़्लिप की अपेक्षित संख्या को लगातार हेड तक पहुंचने के लिए :एन एम 0 एन ( एन , एम )(N,M)NM0Ne(N,M)

(1) 50% संभावना है कि अगला फ्लिप प्रमुख होगा, आपको राज्य , और 50% मौका अगला फ्लिप पूंछ होगा, आपको राज्य में ले जाएगा । यह एक फ्लिप की लागत। इसलिए अपेक्षा (पुनरावर्ती) द्वारा दी गई है(N,M+1)(N,0)

e(N,M)=12e(N,M+1)+12e(N,0)+1.

(2) आधार की स्थिति: आप पहले से ही निर्धारित कर चुके हैं

e(N,0)=2N+12

और जाहिर है

e(N,N)=0

(कोई और अधिक flips की जरूरत है)।

यहाँ संगत मैथमेटिका प्रोग्राम है (पुनरावर्तन को गति देने के लिए मध्यवर्ती परिणामों के कैशिंग सहित, जो इसे प्रभावी रूप से एक गतिशील प्रोग्रामिंग समाधान बनाता है):

e[n_, m_] /; n > m > 0 := e[n, m] = 1 + (e[n, m + 1] + e[n, 0])/2 // Simplify
e[n_, 0] := 2^(n + 1) - 2
e[n_, n_] := 0

कार्यक्रम अन्य प्रोग्रामिंग भाषाओं में समान होगा जो पुनरावृत्ति का समर्थन करते हैं। गणितीय रूप से, हम यह पुष्टि कर सकते हैं कि केवल पुनरावृत्ति की जांच करके, क्योंकि यह स्पष्ट रूप से आधार मामलों के लिए है:e(N,M)=2N+12M+1

2N+12M+1=1+(2N+12M+2+2N+12)/2,

जो किसी भी और , QED के लिए सही है।एनMN


आम तौर पर , एक ही दृष्टिकोण है कि स्थापित करेगा जब सिक्का संभावना है प्रमुखों की। हार्ड पार्ट बेस कंडीशन काम कर रहा है । कि चरणों का पीछा करते हुए अंत तक का पीछा करते हुए खुद को और हल करने के रूप में व्यक्त किया जाता है: पी(एन,0)एन(एन,0)e(N,M)=pNpM1ppe(N,0)Ne(N,0)

e(N,0)=1+pe(N,1)+(1p)e(n,0)=1+p(1+pe(N,2)+(1p)e(N,0))+(1p)e(N,0)=1+p+p2++pN1+(1p)[1+p++pN1]e(N,0);e(N,0)=1pN1p+(1pN)e(N,0);e(N,0)=pN11p.

1
शायद काम कर iteratively बजाय रिकर्सिवली बेहतर हो सकता है? आपके पास जो देता है और इसलिए और इसलिए देने परया अंतर समीकरण हल के बजाय "सैद्धांतिक रूप से" हल किया जा सकता है। (एन,एम+1)=2(एन,एम)-2एन+1( एन , 1 )
e(N,M)=12e(N,M+1)+12e(N,0)+1
e(N,M+1)=2e(N,M)2N+1
(एन,एम)=2एन+1-2एम+1 है
e(N,1)=2e(N,0)2N+1=2(2N+12)2N+1=2N+14e(N,2)=2e(N,1)2N+1=2(2N+14)2N+1=2N+18
e(N,M)=2N+12M+1.
दिलीप सरवटे

@Dilip आपके द्वारा "जो देता है" और "इत्यादि" दोनों तरह के निष्कर्ष निकाले जाते हैं "सैद्धांतिक रूप से हल" करके आपके पास क्या समाधान विधि है?
whuber

मेरे दिमाग में, पुनरावर्ती और पुनरावृत्ति के बीच का अंतर काम करने की विधि है। संबंध पुनरावर्तन रूप में गणना करता है। जबकि पुनरावृत्ति कहती है "सैद्धांतिक रूप से" विशेषता बहुपद का पता लगाकर, इसकी जड़ों का निर्धारण करके, और फिर ऊपर की ओर साधारण गणना के बजाय सामान्य परिस्थितियों के लिए सामान्य समाधान को फिट करके अंतर समीकरण को हल करना था।x ( n ) x ( n ) = 2 x ( n - 1 ) = 2 ( 2 x ( n - 2 ) ) = 2 ( ) 2 ( 2 x ( n - 3 ) ) )
x(n)=2x(n1),  x(0)=1,
x(n)
x(n)=2x(n1)=2(2x(n2))=2(2(2x(n3)))==2(2(2x(0))=2n
x(0)=1x(1)=2x(0)=2x(2)=2x(1)=22x(n)=2x(n1)=22n1=2n.
दिलीप सरवटे

एक प्रोग्रामिंग दृष्टिकोण से, एक कार्यक्रम find_x(n)पुनरावर्ती है अगर यह ऐसा कुछ कहता है if n=0 return 1 else return 2*find_x(n-1)जिसमें find_xखुद को बार कॉल किया जाता है, जबकि एक पुनरावृत्त कार्यक्रम कुछ ऐसा कहेगाny = 1; while n > 0 do begin y=2*y; n=n-1 end; return y
Dilip Sarwate

यदि आप यह देखते हैं कि उन कार्यक्रमों को वास्तव में कंप्यूटर, @Dipip पर कैसे लागू किया जाता है, तो कई वातावरणों में (जैसे कि R) वे शायद ही सभी में भिन्न होते हैं। (एक मामले में आप बनाते हैं और फिर एक सदिश प्रक्रिया करते हैं और 1:nदूसरे में आपको पता चलेगा कि n:1स्टैक पर रखा गया है और रिवर्स में संसाधित किया गया है।) लेकिन मेरी बात का एक हिस्सा वैचारिक था : आपकी प्रारंभिक टिप्पणी "चलने का काम कर रही है।" यह विश्लेषण और किसी भी कंप्यूटर प्रोग्राम के लिए नहीं है। लेकिन ये तुच्छ हैं, स्पर्शरेखा बिंदु हैं जिनकी चर्चा इस टिप्पणी के धागे को बढ़ाती नहीं है।
whuber

5

इस समस्या को हल करने के लिए, मैं स्टोकेस्टिक प्रक्रियाओं का उपयोग करूंगा, समय को रोकना और गतिशील प्रोग्रामिंग।

सबसे पहले, कुछ परिभाषाएँ:

Xn#(of consecutive heads after the nth flip)
हम भी लिए एक मूल्य की अनुमति देते हैं मतलब है कि हम शुरू होने से पहले लगातार सिर की संख्या। तो, और फ़्लिप HHTHHHTHTTHH के अनुक्रम के लिए, का संगत मान 120123010012 है। यदि हमारे पास , तो X के मान (M + 1) (M + 2) 0123010012 होंगे।X0X0=0XX0=M

फिर निम्नलिखित स्टॉपिंग समय को परिभाषित करें:

τNmin{k:Xk=N} and τ0min{k>1:Xk=0}

जिस मान की हम तलाश कर रहे हैं , वह का अपेक्षित मान है , जिस फ़्लिप की संख्या में N लगातार फ़्लिप देखने के लिए लेता है , यह देखते हुए कि हमने पहले से ही M लगातार फ़्लिप । मान लें कि उत्तर के रूप में है अन्यथा 0 है। हम गणना करते हैं: ( एक्स τ एन = एन ) ( एक्स 0 = एम ) एम एनτN(XτN=N)(X0=M)MN

E[τN|X0=M]=E[τN1{τN<τ0}+τN1{τN>τ0}|X0=M]
=(NM)(12)NM+E[τ0|τN>τ0,X0=M]+(1(12)NM)E[τN|X0=0]
यह हमें अंतिम दो सशर्त अपेक्षाओं की गणना करने के लिए छोड़ देता है।

पहले पूंछ की अनुमानित संख्या से मेल खाती है इससे पहले कि एक पूंछ मानकर फ़्लिप किया जाता है इससे पहले कि एन लगातार सिर मनाया जाता है मान लें कि हम एम लगातार सिर के साथ शुरू करते हैं। यह देखना बहुत मुश्किल नहीं है

E[τ0|τN>τ0,X0=M]=j=1NM(j)(12)j=2(NM+2)(12)NM

अब हमें केवल दूसरी सशर्त अपेक्षा की गणना करनी है जो अपेक्षित संख्या में फ़्लिप से मेल खाती है जो N से शुरू होने वाले लगातार शीर्षों का निरीक्षण करती है। एक समान गणना के साथ, हम देखते हैं कि

E[τN|X0=0]=E[τN1{τN<τ0}+τN1{τN>τ0}|X0=0]
=N(12)N+E[τ0|τN>τ0,X0=0]+(1(12)N)E[τN|X0=0]
=2N{N(12)N+(2(N+2)(12)N)}
=2N+12

यह अंतिम जवाब देता है:

E[τN|X0=M]=(NM)(12)NM+2(NM+2)(12)NM+(1(12)NM)(2N+12)
=2N+12M+1

यह आपके द्वारा सूचीबद्ध चार परीक्षण मामलों से सहमत है। इस तरह के एक सरल जवाब के साथ, यह गणना करने का एक आसान तरीका हो सकता है।


1
यह ऊपर सूचीबद्ध पुनरावर्ती विचार की तुलना में इसे हल करने का एक कठिन तरीका है, लेकिन यह दोनों दृष्टिकोणों को एक साथ देखने के लिए बेहद उपयोगी है। अधिकांश लोग उस तरीके की सराहना नहीं करते हैं जो समय के तरीकों को रोकना छोटे, व्यावहारिक समस्याओं के लिए भी इस्तेमाल किया जा सकता है।
ईली

2

चेतावनी: निम्नलिखित को एक उचित उत्तर के रूप में नहीं माना जा सकता है कि यह प्रश्न के लिए एक बंद रूप समाधान प्रदान नहीं करता है, esp। पिछले उत्तरों से तुलना करने पर । हालाँकि मुझे सशर्त वितरण के लिए दृष्टिकोण काफी दिलचस्प लगा।

संभावना साथ फेंकता से बाहर सिर का अनुक्रम प्राप्त करने के प्रारंभिक प्रश्न पर विचार करें । यह पुनरावृत्ति सूत्र वास्तव में, मेरा तर्क यह है कि ड्रॉ से लगातार कोई भी हेड ड्रॉ नहीं हो सकता है, पहले से बाहर एक पूंछ की पहली घटना के अनुसार विघटित हो सकता है फेंकता है। यह देखते हुए कि क्या यह पहली पूंछ पहले, दूसरे, ... पर होती है, थ ड्रॉ इस पुनरावृत्ति संबंध की ओर ले जाता है।कश्मीर 1 - पी ( एन , कश्मीर ) पी ( एन , कश्मीर ) = { 1 अगर  कश्मीर < एन Σ एन मीटर = 1 1Nk1p(N,k)

p(N,k)={1if k<Nm=1N12mp(N,km)else
NkNN

अगला, थ्रो में पहला लगातार एन हेड्स प्राप्त करने की संभावना $ $ q (N, m) = \ start {केस} \ dfrac {1} {2 ^ N} और \ text {if} m = है एन \mN

     p(N,m-N-1) \dfrac{1}{2^{N+1}} &\text{if } N<m<2N+1
     \end{cases}

$ $ पहला मामला आत्म-व्याख्यात्मक है। दूसरा मामला वें ड्रॉ पर होने वाली पूंछ से मेल खाता है , उसके बाद हेड्स, और आखिरी केस थ ड्रॉ से पहले लगातार हेड्स को प्रतिबंधित । (दो अंतिम मामलों को एक में संघनित किया जा सकता है, प्रदान किया गया!)mN1NNmN1

अब, संभावना प्राप्त करने के लिए सिर पहले और पहले लगातार में सिर वास्तव में फेंकता है (और कम नहीं) $$ आर (एम, एन, एम) है = \ begin {मामलों} 1/2 ^ एन एंड \ text {यदि} m = N \MN mN

     0 &\text{if } N<m\le N+M\\

      \dfrac{1}{2^{M}}\sum_{r=M+1}^{N}\dfrac{1}{2^{r-M}}q(N,m-r)&\text{if } N+M<m

\ n अंत {मामले} (M, N, m) = \ start {मामलों} 1 / {2 ^ {NM}} & \ text {if} m = N \ 0 & \ text {if} N \ sum_ {r = M + 1} ^ {N} \ dfrac {q (N, mr)} {2 ^ {rM }} & \ text {अगर} एन + एम

Hencetheconditionalprobabilityofwaiting$m$stepstoget$N$consecutiveheadsgiventhefirst$M$consecutiveheadsis

\ end {केसेस} \ mathfrak {E} (M, N) = \ sum_ {m = N} ^ \ infty m \, s (M, N, m) $ $ या द्वारा प्राप्त किया जा सकता है अतिरिक्त चरणों की संख्या के लिए ... ( एम , एन ) - एम

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