0205 骰子游戏
* * * *
拉格朗日计划
* * * *
骰子游戏

彼得有九个标有1到4的四面骰(呈金字塔型)。

科林有六个标有1到6的六面的骰子(呈立方体型)。

彼得和科林分别掷出他们的所有骰子,并比较点数和:点数和更大者获胜,点数和相同时为平局。

彼得击败科林的概率是多少?答案四舍五入至七位小数,即格式为0.abcdefg。

本题难度:



解答

本题直接求出解析解也不困难,不过由于总数很小,直接编程列出所有投骰结果再用二分查找统计和汇总结果似乎更省力一些。

结果是$0.5731441$。

import itertools,bisect

p=sorted([sum(c) for c in itertools.product(range(1,5),repeat=9)])

d={}
for c in itertools.product(range(1,7),repeat=6):
    x=sum(c)
    d[x]=d.get(x,0)+1

m=1<<18
n=m*(6**6)

print "%.7f" %(1.0*sum((m-bisect.bisect(p,c))*d[c] for c in d.keys())/n)