|
发表于 2017-8-14 09:40:39
|
显示全部楼层
1.遍历所有可能出现的值(总和),统计次数,分别算出该值出现概率
2.逐个值进行比较,将2边的值的出现概率相乘,累加后即为结果
- jzt = {} # 金字塔出现所有值的统计
- for i in range(1,5):
- for j in range(1,5):
- for k in range(1,5):
- for l in range(1,5):
- for m in range(1,5):
- for n in range(1,5):
- for o in range(1,5):
- for p in range(1,5):
- for q in range(1,5):
- a = i+j+k+l+m+n+o+p+q
- jzt.setdefault(a,0)
- jzt[a]+=1
- zft= {} # 正方体出现所有值的统计
- for i in range(1,7):
- for j in range(1,7):
- for k in range(1,7):
- for l in range(1,7):
- for m in range(1,7):
- for n in range(1,7):
- a = i+j+k+l+m+n
- zft.setdefault(a,0)
- zft[a]+=1
- a = 4**9 # 金字塔所有值的总次数
- for i in jzt:
- jzt[i] /= a # 每个值出现的概率(该值的出现次数/所有值的次数)
- a = 6**6 # 正方体所有值的总次数
- for i in zft:
- zft[i] /= a
- gl = 0
- for i in jzt:
- for j in zft:
- if i > j: # 逐个值进行比较,如果金字塔>正方体,将对应的值的概率进行相乘
- gl += jzt[i]*zft[j] # 概率累加
- print(round(gl,7))
复制代码
%time %run qqq2.py
0.5731441
Wall time: 254 ms |
评分
-
查看全部评分
|