ding
2021-07-31T14:40:44+00:00
直接用某网站赔率编程遍历结果算了一下概率,最后结果美国54%中国46%
自行车那里有个美国选手赔率29,用1/33的概率算的,实际区别不大,不考虑他最后结果差不到1%
最后金牌差的概率(美国-中国, 负的是中国多,正的是美国多):
-3: 0.50%
-2: 10.33%
-1: 34.88%
0: 39.02%
1: 13.63%
2: 1.60%
自行车那里有个美国选手赔率29,用1/33的概率算的,实际区别不大,不考虑他最后结果差不到1%
最后金牌差的概率(美国-中国, 负的是中国多,正的是美国多):
-3: 0.50%
-2: 10.33%
-1: 34.88%
0: 39.02%
1: 13.63%
2: 1.60%
代码 ...
from itertools import *
MAX = 1e18
def prob(*lst):
total = sum(1/x for x in lst)
return [1/x/total for x in lst]
# [中国, 美国, 都没有]
女排 = prob(MAX, 1.65, 2.37)
女篮 = prob(MAX, 1.02, 17)
男子63kg = prob(MAX, 4.33, 1.20)
女子75kg = prob(2.75, MAX, 1.4)
男子91kg = prob(MAX, 6, 1.11)
自行车女子全能 = [0, 1/33, 32/33] #美国赔率29
项目 = [女排, 女篮, 男子63kg, 男子91kg, 女子75kg, 自行车女子全能]
idx = [(0, 1, 2) for _ in range(6)]
china, usa = 0, 0
for idxs in product(*idx):
p = 100
for i, x in enumerate(idxs):
p *= 项目[i][x]
if idxs.count(1) - idxs.count(0) >= 2:
usa += p
else:
china += p
print(f'USA:{usa:.2f}%\nCHINA:{china:.2f}%')
# USA:54.29%
# CHINA:45.71%
MAX = 1e18
def prob(*lst):
total = sum(1/x for x in lst)
return [1/x/total for x in lst]
# [中国, 美国, 都没有]
女排 = prob(MAX, 1.65, 2.37)
女篮 = prob(MAX, 1.02, 17)
男子63kg = prob(MAX, 4.33, 1.20)
女子75kg = prob(2.75, MAX, 1.4)
男子91kg = prob(MAX, 6, 1.11)
自行车女子全能 = [0, 1/33, 32/33] #美国赔率29
项目 = [女排, 女篮, 男子63kg, 男子91kg, 女子75kg, 自行车女子全能]
idx = [(0, 1, 2) for _ in range(6)]
china, usa = 0, 0
for idxs in product(*idx):
p = 100
for i, x in enumerate(idxs):
p *= 项目[i][x]
if idxs.count(1) - idxs.count(0) >= 2:
usa += p
else:
china += p
print(f'USA:{usa:.2f}%\nCHINA:{china:.2f}%')
# USA:54.29%
# CHINA:45.71%