面试题 | 一道有意思的概率题

6 篇文章 2 订阅
5 篇文章 4 订阅

1 前言

最近遇到一个很有意思的概率论问题,之前貌似室友也和我说过?恰巧前几天参加头条的面试又遇到了概率论的问题(哭),愈发觉得概率论相当重要,于是,遇到一个总结一个吧~锻炼自己的思维 加油!

2 题目及解答

2.1 题目

这个题目是这样的,有三个门A,B,C,只有一个门背后有百万奖金!这时候主角(姑且较为小李吧!)猜B门有奖金!主持人啪的一下打开了C门,没有奖金,然后这时候对小李发出了灵魂拷问:诶,小李啊,你换不换啊?坚持B门or换成A门

A
B
C

刺激啊!百万奖金啊!于是小李陷入了深深的思考中,怎么办怎么办?要不要换?

直觉上,C门打开了没奖金,所以奖金肯定在A门或者B门,而我们又没有任何先验信息,所以无所谓?

但小李出于对百万奖金的谨慎态度,希望能从概率的角度进行解释!

2.2 解答

2.2.1 直观解释

这个问题看似没有任何先验信息,但仔细琢磨一下还是有的:

  • 如果小李一开始猜对了,即奖金在B门,那么主持人可以打开A门或者C门,有两种选择,这时候小李换门就拿不到奖金了
  • 如果小李一开始猜错了,即奖金在A门,那么主持人只能打开C门!这时候小李换门肯定能拿到奖金

有了上面朴素的解释,我们给出一个很朴素的结论:

  • 小李一开始猜对的概率为 1 3 \frac{1}{3} 31,换门就拿不到奖金!
  • 小李一开始猜错的概率为 2 3 \frac{2}{3} 32,换门就拿到奖金!

所以肯定换啊!因为猜错概率大,在这种情况下换门就可以拿到奖金!!!是不是很通俗易懂了?

2.2.2 概率解释

如果觉得上述还是有点玄学,能不能从概率论的角度进行解释呢?必须可以!

我们现在考虑两个概率,即开了C门的情况下,奖金在A门或者B门的概率 P ( A ∣ C 开 ) P(A|C_开) P(AC) P ( B ∣ C 开 ) P(B|C_开) P(BC)。小李一开始猜测的是奖金在B门!

  • 如果 P ( A ∣ C 开 ) &lt; P ( B ∣ C 开 ) P(A|C_开) &lt;P(B|C_开) P(AC)<P(BC),那么小李坚持不换门,即奖金更可能在B门
  • 如果 P ( A ∣ C 开 ) &gt; P ( B ∣ C 开 ) P(A|C_开) &gt;P(B|C_开) P(AC)>P(BC),那么小李应该果断换门,即奖金更可能在A门

所以接下来我们计算两个概率即可:

1、 P ( A ∣ C 开 ) = P ( A ) P ( C 开 ∣ A ) P ( C 开 ) = P ( A ) P ( C 开 ∣ A ) P ( A ) P ( C 开 ∣ A ) + P ( B ) P ( C 开 ∣ B ) = 1 3 × 1 1 3 × 1 + 1 3 × k = 1 1 + k P(A|C_开)=\frac{P(A)P(C_开|A)}{P(C_开)}=\frac{P(A)P(C_开|A)}{P(A)P(C_开|A)+P(B)P(C_开|B)}=\frac{\frac{1}{3}×1}{\frac{1}{3}×1+\frac{1}{3}×k}=\frac{1}{1+k} P(AC)=P(C)P(A)P(CA)=P(A)P(CA)+P(B)P(CB)P(A)P(CA)=31×1+31×k31×1=1+k1

对上述公式需要解释几点:

  • P ( C 开 ∣ B ) = k P(C_开|B)=k P(CB)=k,即奖金在B的情况下开C门的概率我们设为k
  • P ( C 开 ∣ A ) = 1 P(C_开|A)=1 P(CA)=1,因为奖金在A的情况下,小李又猜测了B门,所以主持人只能打开C门,故概率为1。对应上述直观解释的第二条~

2、 P ( B ∣ C 开 ) = P ( B ) P ( C 开 ∣ B ) P ( C 开 ) = P ( B ) P ( C 开 ∣ B ) P ( A ) P ( C 开 ∣ A ) + P ( B ) P ( C 开 ∣ B ) = 1 3 × k 1 3 × 1 + 1 3 × k = k 1 + k P(B|C_开)=\frac{P(B)P(C_开|B)}{P(C_开)}=\frac{P(B)P(C_开|B)}{P(A)P(C_开|A)+P(B)P(C_开|B)}=\frac{\frac{1}{3}×k}{\frac{1}{3}×1+\frac{1}{3}×k}=\frac{k}{1+k} P(BC)=P(C)P(B)P(CB)=P(A)P(CA)+P(B)P(CB)P(B)P(CB)=31×1+31×k31×k=1+kk

对上述公式需要解释几点:

  • P ( C 开 ∣ B ) = k P(C_开|B)=k P(CB)=k P ( C 开 ∣ A ) = 1 P(C_开|A)=1 P(CA)=1,理由同上~
  • 开了C门的情况下,奖金在B和C的概率为1,验证了我们公式没问题~

计算出了上述两个概率,由于一般情况下 k &lt; 1 k&lt;1 k<1我们可以得到:

  • P ( A ∣ C 开 ) &gt; P ( B ∣ C 开 ) P(A|C_开) &gt;P(B|C_开) P(AC)>P(BC),说明此时小李应该果断换门,即奖金更可能在A门
  • 如果主持人知道了对于奖金在B的情况下,打开A门或者C门没有偏向性,即 k = 1 2 k=\frac{1}{2} k=21,那么 P ( A ∣ C 开 ) = 2 3 P(A|C_开) =\frac{2}{3} P(AC)=32 P ( B ∣ C 开 ) = 1 3 P(B|C_开) =\frac{1}{3} P(BC)=31,说明小李一开始猜测B门有奖金的情况下,主持人打开C门后,换成A门获奖概率更高,和上述直观解释一致~

3 Python模拟

通过上述直观解释和概率论角度解释,小李还觉得意犹未尽,诶,能不能模拟操作一下,看实际中是不是换成A门获奖概率更高呢?好的,Python模拟操作就位!

思路

  • 以1表示这个门有奖金,0表示没有奖金
  • 一开始随机选一个门
  • 然后要么坚持还是选这个门,要么换另外一个门,换的时候要么从0-1 要么从1-0
  • 模拟多次,将每次结果加起来!比较总数即可!因为总数代表着拿到奖金(1)的概率!
import random
random.choice([0,1,0]) # 从 0 1 0三个元素中随机抽取一个 中间的1表示B门有奖金!
0
def Game(n):
    '''模拟三门问题
    - n:要模拟的次数
    '''
    import random
    
    s1 = 0 # 初始化
    s2 = 0 # 初始化
    all_choice = [0,1,0] # 即只有一个门有奖金
    for i in range(n):
        s_1 = random.choice(all_choice) # 没有换门 坚持原来的选择
        s_2 = 1 - s_1 # 表示换门了 要么从0-1 要么 1-0
        s1 += s_1
        s2 += s_2   
    print('小李不换门情况下: 总共进行了 %d 次实验,拿到了奖金的次数为 %d, 概率为 %.4f' % (n, s1, s1/n))
    print('小李换门情况下: 总共进行了 %d 次实验,拿到了奖金的次数为 %d, 概率为 %.4f' % (n, s2, s2/n))
  • 进行1000次实验
Game(1000)
小李不换门情况下: 总共进行了 1000 次实验,拿到了奖金的次数为 355, 概率为 0.3550
小李换门情况下: 总共进行了 1000 次实验,拿到了奖金的次数为 645, 概率为 0.6450
  • 进行10000次实验
Game(10000)
小李不换门情况下: 总共进行了 10000 次实验,拿到了奖金的次数为 3336, 概率为 0.3336
小李换门情况下: 总共进行了 10000 次实验,拿到了奖金的次数为 6664, 概率为 0.6664
  • 进行100000次实验
Game(100000)
小李不换门情况下: 总共进行了 100000 次实验,拿到了奖金的次数为 33609, 概率为 0.3361
小李换门情况下: 总共进行了 100000 次实验,拿到了奖金的次数为 66391, 概率为 0.6639

结论:通过上述模拟实验,进一步验证了小李在一开始猜测B门的情况下,主持人打开了C门,这时候小李换成A门的情况下更有可能获得奖金!且概率为 2 3 \frac{2}{3} 32,不换情况下获奖概率为 1 3 \frac{1}{3} 31

参考

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值