硬币和骰子是统计学家们的心头好。没有硬币,统计学家根据骰子也能
创造
出来一枚硬币,没有骰子,统计学家们也能根据硬币创造
出来一个骰子。
硬币等于骰子,are you kidding me?我读书少,你不要骗我。
是在统计学上了,物理上显然是不同的。
此话怎讲?
统计学意义上的硬币,其实是产生
{12 ,12 }
的概率分布;统计学意义上的骰子,则是产生
{16 ,16 ,16 ,16 ,16 ,16 }
的概率分布。想要证明二者是等价的,需证明:
下来,我们会看到整个的解题思路的本质,在构造新的样本空间,再在新的样本空间中适当的取舍,构造符合要求的概率。
从硬币到骰子
思路在二进制,需抛硬币三次(
2 3 >6
),每次正面向上记为1,反面向上记为0,将得到的结果排列,得到
000−111
的八种等可能情况,策略如下:
000,111 重新投掷。
# python
from random import random
# random()函数产生0-1均匀分布
from collections import defaultdict
def coin():
return 1 if random() < .5 else 0
# 仿真硬币0-1分布
def coin2dice():
while True:
r1, r2, r3 = coin(), coin(), coin()
r = r1+r2*2+r3*2**2
if r != 0 and r != 7:
# 否则继续循环,直到
return r
if __name__ == '__main__':
coll = defaultdict(int)
N = 10**6
for i in range(N):
coll[coin2dice()] += 1
for i in coll:
print(i, coll[i]/N)
1 0.167048
2 0.166332
3 0.16603
4 0.167182
5 0.166674
6 0.166734
从骰子到硬币
只需一步,奇偶性判断,对骰子的样本空间
{1,2,3,4,5,6}
进行重新组合,二分为
{1,3,5},{2,4,6}
,
自然也可将骰子的样本空间二分为: {1,2,3},{4,5,6} ,只要二者平分1(对应的概率均为 12 )即可。
def dice2coin():
r = int(6*random()+1)
return 1 if r%2==0 else 0
if __name__ == '__main__':
coll = collectiondict(int)
N = 10**6
for i in range(N):
coll[dice2coin()] += 1
for i in coll:
print(i, coll[i]/N)
0 0.49961
1 0.50039
2情况数的硬币 等价于 6情况数的骰子的意义是什么
意义在于概率分布的转化,互相转化,一种概率分布向另一种概率分布的转化。
考虑如下的两种场景,
场景1:从两个人中选出一人做某事,费厄泼赖(fair play),两人被选中的概率均为 12 ,此时如果你手头没有一枚硬币,供你通过正反得 12 ,12 的概率分布,而恰有一个骰子,怎么办,此时就用到了如何通过掷骰子得抛硬币的概率分布,也即 {16 ,16 ,16 ,16 ,16 ,16 } 得 {12 ,12 } ,如前所述,通过奇偶性判断,抛出的点数为奇数,则指派其中一人,点数为偶数,则指派另一个人。
场景2:从6个人中费厄泼赖地选出一人做某事。此时你没有骰子,只有硬币。如前所述,抛三次, 001−110 分别对应于 1−6 , 000/111 则重新抛掷(以构造情况数为6的等概率分布)。