【炉石传说】复仇之怒 vs 德鲁伊+2 * 苦痛诗僧

原文见此 

# -*- coding: utf8 -*


if __name__ == "__main__":    
    TOTAL_HIT = 8
    MONK_HP = 3
    hit_p = dict([(i, 0) for i in range(MONK_HP * 2 + 2)])
    for i in range(3 ** TOTAL_HIT):
        m = [MONK_HP, MONK_HP, 1]
        count = 0
        p = 1
        t = i
        s, ss = "", ""
        for j in range(TOTAL_HIT + 1):
            if j == TOTAL_HIT:
                break
            hit_who = t % 3
            if m[hit_who] == 0:
                break
            s += str(hit_who)
            count_zero = 3 - sum([int(i==0) for i in m])
            p *= 1.0 / count_zero
            ss += str(count_zero)
            if hit_who < len(m) - 1:
                m[hit_who] -= 1
                count += 1
            t /= 3
        if j == TOTAL_HIT:
            print s, ss, count, p
            hit_p[count] += p
    print 
    for i in range(len(hit_p)-1):
        print i, hit_p[i]


输出:

0 0.000152415790276

1 0.00243865264441

2 0.0170705685109

3 0.0844478737997

4 0.230195473251

5 0.33236168267

6 0.333333333333


你可能感兴趣的:(python,概率分布,炉石传说)