ধারাবাহিকভাবে এম দেওয়া, টানা এন পাওয়ার জন্য প্রত্যাশিত কয়েনের সংখ্যা


10

সাক্ষাত্কারের জানুয়ারিতে তাদের দ্বিতীয় কোডসপ্রিন্ট ছিল যা নীচের প্রশ্নটি অন্তর্ভুক্ত করেছিল। প্রোগ্রাম্যাটিক উত্তর পোস্ট করা হয় তবে একটি পরিসংখ্যানগত ব্যাখ্যা অন্তর্ভুক্ত করা হয় না।

(আপনি মূল সমস্যাটি দেখতে পাচ্ছেন এবং গুগল শংসাপত্রের সাথে ইন্টারভিউস্ট্রেট ওয়েবসাইটে সাইন ইন করে এবং তারপরে এই পৃষ্ঠা থেকে কয়েন টোসেস সমস্যায় গিয়ে সমাধানটি পোস্ট করতে পারেন ))

কয়েন টোসেস

আপনার একটি নিরপেক্ষ মুদ্রা রয়েছে যা আপনি টানা এন অবিরত মাথা না পাওয়া পর্যন্ত টস করতে চান। আপনি মুদ্রণ এম বার বার ছুঁড়েছেন এবং আশ্চর্যরূপে, সমস্ত টস মাথাতে ফলস্বরূপ।

আপনি ক্রমাগত এন হেড না পাওয়া পর্যন্ত অতিরিক্ত টসসের প্রত্যাশিত সংখ্যার কী?

ইনপুট:
প্রথম লাইনে টি এর সংখ্যার সংখ্যা রয়েছে next পরবর্তী টি লাইনের প্রতিটি লাইনে দুটি নম্বর এন এবং এম রয়েছে contains

আউটপুট:
আউটপুট টি লাইনগুলি সংশ্লিষ্ট পরীক্ষার ক্ষেত্রে উত্তর যুক্ত করে। উত্তরটি ঠিক 2 দশমিক স্থানে মুদ্রণ করুন।

নমুনা ইনপুট:
4
2 0
2 1
3 3
3 2

নমুনা আউটপুট:
6.00
4.00
0.00
8.00

নমুনা ব্যাখ্যা:
যদি এন = 2 এবং এম = 0 হয়, আপনি ক্রমাগত 2 মাথা না পাওয়া পর্যন্ত আপনার মুদ্রা টসিং চালিয়ে নেওয়া দরকার। এটি দেখাও কঠিন নয় যে গড়ে, 6 টি কয়েন টসস প্রয়োজন।
যদি এন = 2 এবং এম = 1 হয় তবে আপনার একটানা 2 টি মাথা দরকার এবং ইতিমধ্যে 1 টি রয়েছে You আপনার যাই হোক না কেন একবারে টস করতে হবে। প্রথম টসে, যদি আপনি মাথা পেয়ে থাকেন তবে আপনি শেষ করেছেন। অন্যথায়, আপনার পরের কাউন্টারটি পুনরায় সেট করার মতো আপনাকে আবার শুরু করা দরকার এবং আপনি যখনই টানা N = 2 না পান ততক্ষণ আপনার মুদ্রাটি টস করতে হবে need মুদ্রা টসসের প্রত্যাশিত সংখ্যাটি এইভাবে 1 + (0.5 * 0 + 0.5 * 6) = 4.0 হয় যদি এন = 3 এবং এম = 3 হয়, আপনি ইতিমধ্যে 3 টি মাথা পেয়েছেন, সুতরাং আপনার আর কোনও টসসের প্রয়োজন নেই।

গাণিতিক সমীকরণগুলির সাথে আমি যে সমস্ত উপরে এসেছি তার উপরে উল্লিখিত নমুনা ইনপুট ডেটার জন্য সঠিক উত্তর ছিল, তবে তাদের অন্যান্য ইনপুট সেটগুলির (যা জানা নেই) এর জন্য ভুল ছিল। তাদের প্রোগ্রামেটিক সমাধানটি সমস্যাটিকে আমার সমীক্ষার সাথে-সমীকরণ-সমীকরণ পদ্ধতির থেকে অনেক আলাদা সমাধান করতে দেখা যায়। কেউ দয়া করে ব্যাখ্যা করতে পারেন কীভাবে এটি সমাধান করতে পারে এমন একটি সমীকরণ নিয়ে আসে?


1
এখানেও দেখুন যেখানে নীচে ড্যানিয়েল জনসন প্রদত্ত আমরা দেখতে পাই । 2N+12M+1
দিলীপ সরোতে

উত্তর:


8

এটি একটি গণনার অনুশীলন, তাই পুনরাবৃত্তির সাথে চিন্তা করুন । মুদ্রা উল্টানোর বর্তমান পরিস্থিতি অর্ডারযুক্ত জোড় দিয়ে নির্ধারিত হয় । ফ্লিপ প্রত্যাশিত সংখ্যা পৌঁছানোর যাক পরপর মাথা হতে :(N,M)NM0Ne(N,M)

(1) 50% সম্ভাবনা রয়েছে পরের ফ্লিপগুলি প্রধান হয়ে উঠবে, আপনাকে রাজ্যে নিয়ে যাবে , এবং 50% সম্ভাবনা পরবর্তী ফ্লিপ লেজ হবে, আপনাকে রাজ্যে নিয়ে যাবে । এটির জন্য একটি ফ্লিপ খরচ হয়। সুতরাং প্রত্যাশা (পুনরাবৃত্তি) দ্বারা দেওয়া হয়(N,M+1)(N,0)

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

(২) বেস শর্ত: আপনি ইতিমধ্যে এটি নির্ধারণ করেছেন

e(N,0)=2N+12

এবং স্পষ্টতই

e(N,N)=0

(আর কোনও ফ্লিপের দরকার নেই)।

এখানে সম্পর্কিত ম্যাথমেটিকা প্রোগ্রাম (পুনরাবৃত্তিকে গতিময় করার জন্য মধ্যবর্তী ফলাফলের ক্যাশিং সহ, যা কার্যকরভাবে এটিকে একটি গতিশীল প্রোগ্রামিং সমাধান করে তোলে):

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

প্রোগ্রামটি অন্যান্য প্রোগ্রামিং ভাষায় অনুরূপ দেখাবে যা পুনরাবৃত্তি সমর্থন করে। গাণিতিকভাবে, আমরা কেবল পুনরাবৃত্তি পরীক্ষা করে verify যাচাই করতে পারি, কারণ এটি স্পষ্টতই বেস কেসগুলি ধারণ করে:e(N,M)=2N+12M+1

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

যা কোনও এবং , কেইডি-র জন্য সত্য ।MN


আরও সাধারণভাবে , একই পন্থাটি establish প্রতিষ্ঠা করবে যখন মুদ্রার মাথার সম্ভাবনা । হার্ড অংশটি বেস শর্তটি । শেষ পর্যন্ত নিজের এবং সমাধানের দিক থেকে প্রকাশ না হওয়া অবধি ধাপগুলি পুনরাবৃত্তির তাড়া করে এটি করা হয় :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 এই বদলে যাও recursively ভালো হতে পারে? আপনার কাছে যা দেয় এবং তাই এবং তাই দেওয়ার জন্যঅথবা পার্থক্য সমীকরণটি পুনরাবৃত্তির পরিবর্তে "তাত্ত্বিকভাবে" সমাধান করা যেতে পারে।
e(N,M)=12e(N,M+1)+12e(N,0)+1
e(N,M+1)=2e(N,M)2N+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.
দিলিপ সরোতে

@ ডিলিপ আপনি "যা দেয়" এবং "এবং" উভয়ই আঁকেন সেই অনুসারে পুনরাবৃত্তি হয়। "তাত্ত্বিকভাবে সমাধান" করে আপনার মনে কোন সমাধানের পদ্ধতি রয়েছে?
whuber

আমার মনে, পুনরাবৃত্তির এবং পুনরাবৃত্তির মধ্যে পার্থক্য হ'ল কাজ করার পদ্ধতি। জন্য সম্পর্ক পুনরাবৃত্তির গণনা করে যেমন যখন পুনরাবৃত্তির বলেছেন "তাত্ত্বিকভাবে" এর অর্থ হল বৈশিষ্ট্যযুক্ত বহুপদী সন্ধানের মাধ্যমে এর মূলগুলি নির্ধারণ করে এবং তারপরে উপরের মত সাধারণ গণনার পরিবর্তে প্রাথমিক অবস্থার সাধারণ সমাধানটি ফিট করে
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
দিলীপ সরোতে

আপনি যদি দেখুন যে এই প্রোগ্রামগুলি আসলে কম্পিউটারে কীভাবে বাস্তবায়িত হয়, @ ডিলিপ, অনেক পরিবেশে (যেমন R) এগুলি খুব কমই পৃথক। (একটি ক্ষেত্রে আপনি একটি ভেক্টর তৈরি এবং তারপরে প্রক্রিয়াজাত করুন 1:nএবং অন্যটিতে আপনি আবিষ্কার করবেন যা n:1স্ট্যাকের উপরে স্থাপন করা হয়েছে এবং বিপরীতে প্রক্রিয়াজাত করা হয়েছে)) তবে আমার বক্তব্যটির একটি অংশ ধারণাগত ছিল : আপনার প্রাথমিক মন্তব্যটি "পুনরাবৃত্তভাবে কাজ করার" কথা বলেছিল। এটি কোনও কম্পিউটার প্রোগ্রামকে নয় বরং বিশ্লেষণকে বোঝায়। তবে এগুলি তুচ্ছ, স্পর্শকাতর বিন্দু যার আলোচনা এই মন্তব্যের থ্রেডকে বাড়িয়ে তোলার নিশ্চয়তা দেয় না।
whuber

5

এই সমস্যাটি সমাধান করার জন্য, আমি স্টোকাস্টিক প্রক্রিয়াগুলি বন্ধ করার সময় এবং গতিশীল প্রোগ্রামিং ব্যবহার করব।

প্রথমত, কিছু সংজ্ঞা:

Xn#(of consecutive heads after the nth flip)
আমরা শুরু করার আগেই জন্য একটি মানকে ধারাবাহিক সংখ্যা হিসাবেও মঞ্জুরি দিয়েছি । সুতরাং, এবং এর ক্রম, সাথে সম্পর্কিত মানগুলি 120123010012 হয় we যদি আমাদের থাকতেন তবে এক্সের মানগুলি (এম + 1) (এম + 2) 0123010012 হবে।X0X0=0XX0=M

তারপরে নীচের থামার সময়গুলি সংজ্ঞায়িত করুন:

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

আমরা যে মানটির সন্ধান করছি তা এর প্রত্যাশিত মান, ক্রমাগত এন পর্যবেক্ষণ করতে এটি যে পরিমাণ ফ্লিপ নেবে তার সংখ্যা , আমরা ইতিমধ্যে এম ক্রমাগত পর্যবেক্ষণ করেছি । উত্তরটি তুচ্ছভাবে 0 হিসাবে ধরে নিন otherwise আমরা গণনা: ( এক্স τ এন = এন )τ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

এখন আমাদের যা করতে হবে তা হল দ্বিতীয় শর্তসাপেক্ষ প্রত্যাশাটি গণনা করা যা 0 থেকে শুরু করে এন টানা হেডগুলি পর্যবেক্ষণ করতে লাগে এটির প্রত্যাশিত সংখ্যার সাথে মিল রয়েছে a অনুরূপ গণনার সাথে আমরা দেখতে পাই যে

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। যখন আগের উত্তরগুলির সাথে তুলনা করা হয় । তবে শর্তাধীন বিতরণটি কার্যকর করার জন্য আমি এই পদ্ধতিকে যথেষ্ট আকর্ষণীয় বলে মনে করেছি।

সম্ভাব্যতা সহ থ্রো থেকে হেডগুলির ক্রম পাওয়ার প্রাথমিক প্রশ্নটি বিবেচনা করুন । এটি পুনরাবৃত্তি সূত্র by দ্বারা দেওয়া হয়েছে নিশ্চয় আমার যুক্তি কোনো পরপর হয় আউট মাথা আঁকে প্রথম থেকে একটি লেজ প্রথম সংঘটন অনুযায়ী পচে যায় ছুড়ে দেয়। এই প্রথম লেজটি প্রথম, দ্বিতীয়, ..., থ্রিতে ঘটে কিনা এর শর্ত এই পুনরাবৃত্ত সম্পর্কের দিকে নিয়ে যায়।Nk1p(N,k)

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

এর পরে, নিক্ষেপ করে প্রথম এন হেড পাওয়ার সম্ভাবনা হ'ল $$ কিউ (এন, এম) = \ শুরু {কেস \ \ dfrac {1} {2 ^ N} & \ পাঠ্য {যদি} এম = n \mN

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

। প্রথম কেসটি স্ব-ব্যাখ্যামূলক। দ্বিতীয় ম ড্রয়ের সময় একটি লেজের সাথে মিলে যায় , তার পরে হেড হয়, এবং শেষ ক্ষেত্রে তম ড্রয়ের আগে মাথাগুলিকে নিষিদ্ধ করে । (শেষ দুটি ক্ষেত্রে একের মধ্যে ঘনীভূত হতে পারে, মঞ্জুর!)mN1NNmN1

এখন, সম্ভাব্যতা পেতে মাথা প্রথম এবং প্রথম পরপর মধ্যে মাথা ঠিক ছোঁড়ার (এবং কম) $$ দ (এম, এন, মি) হয় = \ শুরু {ক্ষেত্রে} 1/2 ^ 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

\ শেষ {কেস} (এম, এন, এম) = \ শুরু {কেস} 1 / {2 ^ M এনএম}} & \ পাঠ্য {যদি} এম = এন \ 0 এবং \ পাঠ্য {যদি} এন \ সম_ {আর = এম + 1 ^ ^ এন} \ ডিফ্র্যাক {কিউ (এন, মিঃ) {{2 ^ {আরএম }} & \ পাঠ্য {যদি} এন + এম

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

\ শেষ {কেসগুলি} অঙ্কের \ ম্যাথফ্রাক {ই} (এম, এন) = \ যোগ_ {এম = এন} ^ \ ইনফটি এম \, এস (এম, এন, মি) $$ বা দ্বারা প্রাপ্ত করা যেতে পারে অতিরিক্ত পদক্ষেপের সংখ্যার জন্য ...

Theexpectednumberofdrawscanthenbederivedby
E(M,N)M
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.