Bạn và tôi quyết định chơi một trò chơi trong đó chúng tôi thay phiên nhau lật một đồng xu. Người chơi đầu tiên lật 10 đầu trong tổng số trận thắng. Đương nhiên, có một cuộc tranh luận về việc ai nên đi trước.
Mô phỏng của trò chơi này cho thấy người chơi lật đầu tiên thắng nhiều hơn 6% so với người chơi lật thứ hai (người chơi thứ nhất thắng khoảng 53% thời gian). Tôi quan tâm đến việc mô hình hóa phân tích này.
Đây không phải là biến ngẫu nhiên nhị thức, vì không có số lượng thử nghiệm cố định (lật cho đến khi ai đó nhận được 10 đầu). Làm thế nào tôi có thể mô hình này? Có phải là phân phối nhị thức âm?
Vì vậy, để có thể tạo lại kết quả của tôi, đây là mã python của tôi:
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)