用大數(shù)定律計(jì)算爐石傳說(shuō)2費(fèi)2王子的概率 2018-08-10

概率論學(xué)不好不會(huì)用排列組合來(lái)算那就只能依靠大數(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:
        #有把書(shū)給我, 第一回合使用之
            if cards[4] == 0:
            #摸到二王子
                count0 += 1
            elif cards[5] == 0:
            #沒(méi)摸到但是第二回合摸牌摸到二王子
                count0 += 1
        elif cards[4] == 0:
         #沒(méi)有把書(shū)給我, 第二回合摸到二王子
            count0 += 1       
        else:
            pass
print("%d次先手2費(fèi)能上二王子: %.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:
        #有兩個(gè)把書(shū)給我
            if cards[5] == 0:
            #使用第一個(gè), 摸到二王子
                count2 += 1
            elif cards[6] == 0:
            #使用第二個(gè), 摸到二王子
                count2 += 1
            elif cards[7] == 0:
            #都沒(méi)摸到, 但是第二回合摸牌摸到
                count2 += 1
                
        elif 1 in hands and 2 not in hands:
        #有一個(gè)把書(shū)給我
            if cards[5] == 0:
            #使用之, 摸到二王子
                count2 += 1
            elif cards[5] == 2:
            #使用之, 摸到另外一個(gè)把書(shū)給我:
                if cards[6] == 0:
                #使用第二個(gè), 摸到二王子
                    count2 += 1
                elif cards[7] == 0:
                #都沒(méi)摸到, 但是第二回合摸牌摸到
                    count2 += 1
            elif cards[6] == 0:
            #使用之, 沒(méi)有把書(shū)給我, 但是第二回合摸牌摸到
                count2 += 1
        
        elif 2 in hands and 1 not in hands:
        #有一個(gè)把書(shū)給我
            if cards[5] == 0:
            #使用之, 摸到二王子
                count2 += 1
            elif cards[5] == 1:
            #使用之, 摸到另外一個(gè)把書(shū)給我:
                if cards[6] == 0:
                #使用第二個(gè), 摸到二王子
                    count2 += 1
                elif cards[7] == 0:
                #都沒(méi)摸到, 但是第二回合摸牌摸到
                    count2 += 1
            elif cards[6] == 0:
            #使用之, 沒(méi)有把書(shū)給我, 但是第二回合摸牌摸到
                count2 += 1        
        
        elif cards[5] == 0:
        #沒(méi)有把書(shū)給我, 第二回合摸到二王子
            count2 += 1
        elif cards[5] == 1 or cards[5] == 2:
        #第二回合摸到把書(shū)給我, 使用之
            if cards[6] == 0:
            #摸到二王子
                count2 += 1
                
        else:
            pass
print("%d次后手1費(fèi)跳二王子:%.3f, 2費(fèi)能上二王子: %.3f, 總計(jì): %.3f"%(N, count1/N, count2/N, (count1 + count2)/N))   

結(jié)果


image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容