概率論學(xué)不好不會用排列組合來算那就只能依靠大數(shù)定律了...
先上結(jié)論,先手25.8%,后手31.9%
import random
cards = list(range(30))
N = 1000000
count0 = 0
for i in range(N):
random.shuffle(cards)
hands = cards[:3]
if 0 in hands:
#原手就有二王子
count0 += 1
else:
random.shuffle(cards)
hands = cards[:4]
if 0 in hands:
#起手換牌, 第一回合摸牌, 有二王子
count0 += 1
elif 1 in hands or 2 in hands:
#有把書給我, 第一回合使用之
if cards[4] == 0:
#摸到二王子
count0 += 1
elif cards[5] == 0:
#沒摸到但是第二回合摸牌摸到二王子
count0 += 1
elif cards[4] == 0:
#沒有把書給我, 第二回合摸到二王子
count0 += 1
else:
pass
print("%d次先手2費能上二王子: %.3f"%(N, count0/N))
count1 = 0
count2 = 0
for i in range(N):
random.shuffle(cards)
hands = cards[:4]
if 0 in hands:
#原手就有二王子
count1 += 1
else:
random.shuffle(cards)
hands = cards[:5]
if 0 in hands:
#起手換牌, 第一回合摸牌, 有二王子
count1 += 1
elif 1 in hands and 2 in hands:
#有兩個把書給我
if cards[5] == 0:
#使用第一個, 摸到二王子
count2 += 1
elif cards[6] == 0:
#使用第二個, 摸到二王子
count2 += 1
elif cards[7] == 0:
#都沒摸到, 但是第二回合摸牌摸到
count2 += 1
elif 1 in hands and 2 not in hands:
#有一個把書給我
if cards[5] == 0:
#使用之, 摸到二王子
count2 += 1
elif cards[5] == 2:
#使用之, 摸到另外一個把書給我:
if cards[6] == 0:
#使用第二個, 摸到二王子
count2 += 1
elif cards[7] == 0:
#都沒摸到, 但是第二回合摸牌摸到
count2 += 1
elif cards[6] == 0:
#使用之, 沒有把書給我, 但是第二回合摸牌摸到
count2 += 1
elif 2 in hands and 1 not in hands:
#有一個把書給我
if cards[5] == 0:
#使用之, 摸到二王子
count2 += 1
elif cards[5] == 1:
#使用之, 摸到另外一個把書給我:
if cards[6] == 0:
#使用第二個, 摸到二王子
count2 += 1
elif cards[7] == 0:
#都沒摸到, 但是第二回合摸牌摸到
count2 += 1
elif cards[6] == 0:
#使用之, 沒有把書給我, 但是第二回合摸牌摸到
count2 += 1
elif cards[5] == 0:
#沒有把書給我, 第二回合摸到二王子
count2 += 1
elif cards[5] == 1 or cards[5] == 2:
#第二回合摸到把書給我, 使用之
if cards[6] == 0:
#摸到二王子
count2 += 1
else:
pass
print("%d次后手1費跳二王子:%.3f, 2費能上二王子: %.3f, 總計: %.3f"%(N, count1/N, count2/N, (count1 + count2)/N))
結(jié)果
image.png