抛硬币
一枚均匀硬币,平均抛多少次才能连续两次正面向上?
答:设表示连续$k$次正面向上的随机变量,则表示连续$k$面朝上需要抛硬币次数的均值,则:
下面解释这个式子.
要想得到次正面向上之前必须有次正面向上,因此第一项的就是这个意思,第二项的意思是达到$N_{k-1}$之的下一个伯努利实验如果成功,则实验到此为止。第三项的意思是如果不成功,则一切从头开始.
得:
得:
羊、车、门
有3扇关闭的门,一扇门后面停着汽车,另外两扇门后是山羊,只有主持人知道每扇门后面是什么。参赛者先选择一扇门,在开启它之前,主持人会开启另外一扇门,露出门后的山羊,然后如果你是参赛者,你换不换门?
正常人会认为换不换几率都是1/2,但是真的是这样么?:
- 这题成功率仅仅取决于第一次是不是选车,如果第一次选车那换门就输了,因此换门输的概率就是第一次选中车的概率,是1/3.
- 现在把这个问题普遍化,问题就是计算换门和不换门两种情况下成功的概率,假设$N$扇门中有一个车,其他的都是羊
- 不换门:成功的条件是第一次选择了车 设事件A=第一次选择了车 则$P(A)=\frac{1}{N}$
- 换门:成功的条件是第一次选择了羊 第二次选择了车 设事件B=第一次选择了羊,事件C=第二次选择了车 $P(C|B)=\frac{N-1}{N} \times \frac{1}{N-2} = \frac{N-1}{N-2} \times \frac{1}{N} > \frac{1}{N}$
实例代码,更改N可以更改门的数量:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29import time # 导入时间库
from random import choice
TIMES = 100000 # 用来标记做了多少次选择
che = 0 # 用来记录多少次选择了车
yang = 0 # 用来记录多少次选了羊
N = 5 # 标记多少个门
time.clock() # 开始计时
# for 循环用于选择并判断多少次选择了车
for i in range(TIMES):
l = ['c'] + ['s' + str(i + 1) for i in range(N - 1)]
# eg: l = ['c', 's1', 's2', 's3', 's4'] # 选择内容,c代表车,sn代表第N只羊
first = choice(l) # 随机从中选择一个
if first == 'c':
yang = yang + 1 # 当选择车时,主持人亮出一只羊,更改选择后就是选择了羊
else:
l.remove(first) # 扔掉first选的的羊
sheeps = l.copy()
sheeps.remove('c')#主持人在剩下的羊中选择一只
sheep = choice(sheeps) # 主持人选了这个羊
l.remove(sheep)
second = choice(l)
if second == 'c':#如果第二次选中了车
che = che + 1
car = che / TIMES # 得出选择车的概率
sheep = yang / TIMES # 得出选择羊的概率
print("car =", car)
print("sheep =", sheep)
圆上任取三点
圆上任取三点组成锐角三角形的概率是多少?此题可以转化为圆上任取三点不在同一半圆内的概率是多少?
假设先任取A和B,他们一定在同一半圆内,假设他们连接O组成的角$AOB$为X(x$\in[0,\pi]$),则C点必定在OA和OB反向延长线的夹角内才能保证不在同一半圆内,该角度也必定为X,此时概率为:$\frac{x}{2 \pi}$
生日悖论
至少有多少人才能保证有两人生日相同?
答案是366,一点没错,但是我们改一下题:
一个屋子里有23人,计算有两人生日相同的概率。
也就是说,当有23人的时候,就有50%的概率有两人生日相同,当人70人时,在通过上诉公示可以得到概率达到了99.9%,几乎是100%,也就是说,不需要366人,只需要70人基本上就可以断定至少两人生日相同了.