คุณและฉันตัดสินใจที่จะเล่นเกมที่เราผลัดกันพลิกเหรียญ ผู้เล่นคนแรกที่พลิก 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)