Monty Hall Problem(三门问题)的数学证明、理解及python实现

Monty Hall Problem(三门问题)的数学证明、理解及python实现

  • Mounty Hall Problem(三门问题)
  • 数学建模与求解
    • 问题分析与模型建立
    • P ( A = V , P = A , M = C ) P(A=V,P=A,M=C) P(A=V,P=A,M=C) P ( A = V , P = A , M = B ) P(A=V,P=A,M=B) P(A=V,P=A,M=B)的求解
    • P ( P = A , M = C ) P(P=A,M=C) P(P=A,M=C) P ( P = A , M = B ) P(P=A,M=B) P(P=A,M=B)的求解
    • 最终的求解
  • 从信息论角度的理解
  • 从博弈思维(直觉)的理解
  • 仿真模拟

Mounty Hall Problem(三门问题)

  Monty Hall Problem(蒙提霍尔问题,亦称“三门问题”),出自美国电视游戏节目Let’s Make a Deal,由一位名为Monty Hall的主持人主持,因而得名。这个问题后来被广泛用于统计学的教学案例,是统计学中非常经典的“脑筋急转弯”。
  在该问题中,参赛者会面对三扇一模一样,但藏有不同道具的门,其中一扇门的背后放着一辆汽车,另外两扇门后各是一只山羊。每件道具被放在任意一扇门后的概率是完全相同的。参赛者打开任何一扇门,都会得到门后的东西。因此,如果玩家打开了藏有汽车的门,那么他将获得一辆汽车,而打开其他任何一扇门,只能获得一只山羊。而主持人Monty,不能揭露汽车在哪扇门后,但他会在参赛者选中一扇门后,并在其打开这扇门前,帮他排除剩下两扇门中藏有山羊的一扇门。这时,参赛者需要做出选择:是继续不忘初心,坚持己见?还是放弃当初的选择,打开剩下的最后那扇门?
  一种常见的思路是,Monty帮你排除了一扇藏有山羊的门,那么剩下的两扇门里一扇有山羊,一扇有汽车。因此,不论是“不忘初心”也好,还是“改弦易辙”也罢,能选中汽车的概率都是 1 2 \frac{1}{2} 21。所以根本不存在什么最优选择。
  但事实果真如此吗?事实上,参赛者放弃原有选择而重新选择剩下的最后那扇门才是最优解。
  那么如何用数学的语言去证明这一结论?上述的一般思路又存在什么问题呢?

数学建模与求解

问题分析与模型建立

  首先,将上述问题中的各个关键点翻译成数学语言:
  参赛者(Player, P)面临三扇门,编号为A,B和C,参赛者选择门A对应事件{P=A}, 同理,还存在事件{P=B}和{P=C}。于是,有样本空间 Ω P = { P = A , P = B , P = C } \Omega_P={\{P=A, P=B, P=C\}} ΩP={P=A,P=B,P=C}。由于参赛者没有被透露更多能够影响他做出选择的信息,因此参赛者对门做出的选择完全基于其自身的感觉和喜好。但我们并不清楚参赛者做出选择的概率分布。因此,我们只能假设 P ( P = A ) = P A , P ( P = B ) = P B , P ( P = C ) = P C P(P=A)=P_A, P(P=B)=P_B, P(P=C)=P_C P(P=A)=PA,P(P=B)=PB,P(P=C)=PC,当然, P A + P B + P C = 1 P_A+P_B+P_C=1 PA+PB+PC=1
  道具在三扇门后的分布组合由样本空间 Ω D = { ( A = V , B = G , C = G ) ; \Omega_D={\{(A=V, B=G, C=G);} ΩD={(A=V,B=G,C=G);
( A = G , B = V , C = G ) ; ( A = G , B = G , C = V ) } {(A=G,B=V,C=G);(A=G,B=G,C=V)}\} (A=G,B=V,C=G);(A=G,B=G,C=V)}定义。其中,V代表汽车,G代表山羊。
  显然, P ( A = V ) = P ( A = V , B = G , C = G ) = P(A = V)=P(A=V, B=G, C=G)= P(A=V)=P(A=V,B=G,C=G)= 1 3 \frac{1}{3} 31;
P ( A = G ) = P ( A = G , B = V , C = G ) + P ( A = G , B = G , C = V ) = P(A = G)=P(A=G, B=V, C=G)+ P(A=G, B=G, C=V)= P(A=G)=P(A=G,B=V,C=G)+P(A=G,B=G,C=V)= 2 3 \frac{2}{3} 32
  同理, P ( B = V ) = 1 3 {P(B=V)=\frac{1}{3}} P(B=V)=31, P ( B = G ) = 2 3 {P(B=G)=\frac{2}{3}} P(B=G)=32;以及, P ( C = V ) = 1 3 {P(C=V)=\frac{1}{3}} P(C=V)=31, P ( C = G ) = 2 3 {P(C=G)=\frac{2}{3}} P(C=G)=32
  由于参赛者既不知道门后道具的分配,也不能影响门后道具的分配,那么参赛者选某扇门和这扇门后是什么道具之间没有必然联系。因此, Ω P \Omega_P ΩP中的任一基本事件都与 Ω D \Omega_D ΩD中的任一基本事件相互独立。即 P ( P = D 1 ∣ D 2 = G ) = P ( P = D 1 ) P(P=D_1|D_2=G)=P(P=D_1) P(P=D1D2=G)=P(P=D1)或者 P ( D 1 = G ∣ P = D 2 ) = P ( D 1 = G ) P(D_1=G|P=D_2)=P(D_1=G) P(D1=GP=D2)=P(D1=G),D1和D2指代的门可以相同也可以不同。
  主持人Monty Hall (M)会在参赛者做出选择后剩下的门里,打开一扇藏有山羊的门。这句话暗含几个含义:一是,Monty Hall打开的门只可能藏有山羊而不可能藏有汽车;二是,Mounty Hall只能在参赛选手选剩下的门里开门,也就是Monty Hall打开的门不可能跟参赛选手选择的门相同。于是,把上述语言翻译成概率论的语言,得到: { M = D } ∩ { D = G } = { M = D } {\{M=D\}\cap\{D=G\}=\{M=D\}} {M=D}{D=G}={M=D} { M = D } ∩ { D = V } = ∅ {\{M=D\}\cap\{D=V\}=\emptyset} {M=D}{D=V}= { M = D } ∩ { P = D } = ∅ {\{M=D\}\cap\{P=D\}=\emptyset} {M=D}{P=D}= 。其中,D可以是门A,B,C中的任意一扇门。但有一种特殊情况,那就是如果参赛者一开始就猜中了汽车所在的门,那么Monty不得不在剩下的两扇藏有山羊的门中挑选一扇。当然,我们仍然不知道Monty是如何“随机”挑选的(即,不清楚他做决策的概率分布)。严谨起见,我们假设Monty在剩下的两扇门中,选择编号更靠后(按A,B,C的顺序, 靠后的门统称为L,靠前的门统称为F)的门概率为 P ( M = L ∣ P = D , D = V ) = P M ∈ ( 0 , 1 ) P(M=L|P=D,D=V)=P_{M} \in(0,1) P(M=LP=D,D=V)=PM(0,1),那么选择另一扇门的概率就是 P ( M = F ∣ P = D , D = V ) = 1 − P M P(M=F|P=D,D=V)=1-P_{M} P(M=FP=D,D=V)=1PM。以门A藏有汽车且被参赛者选择为例,那么Monty选择门C的概率为 P ( M = C ∣ P = A , A = V ) = P M P(M=C|P=A,A=V)=P_{M} P(M=CP=A,A=V)=PM,选择门B的概率就是 P ( M = B ∣ P = A , A = V ) = 1 − P M P(M=B|P=A,A=V)=1-P_{M} P(M=BP=A,A=V)=1PM
  整理上述条件,得到:
s . t . { P ( D = V ) = 1 3 ( 1 ) P ( D = G ) = 2 3 ( 2 ) P ( P = D 1 ∣ D 2 = G ) = P ( P = D 1 ) ( 3 ) { M = D } ∩ { D = G } = { M = D } ( 4 ) { M = D } ∩ { D = V } = ∅ ( 5 ) { M = D } ∩ { P = D } = ∅ ( 6 ) P ( M = L ∣ P = D , D = V ) = P M ( 7 ) P ( M = F ∣ P = D , D = V ) = P M ( 8 ) P ( P = D ) = P D ( 9 ) P A + P B + P C = 1 ( 10 ) \begin{equation} s.t.\left\{ \begin{array}{lr}\nonumber P(D=V)=\frac{1}{3} & (1)\\ P(D=G)=\frac{2}{3} & (2)\\ P(P=D_1|D_2=G)=P(P=D_1) &(3)\\ \{M=D\}\cap\{D=G\}=\{M=D\}&(4)\\ \{M=D\}\cap\{D=V\}=\emptyset& (5)\\ \{M=D\}\cap\{P=D\}=\emptyset& (6)\\ P(M=L|P=D,D=V)=P_{M}&(7)\\ P(M=F|P=D,D=V)=P_{M}&(8)\\ P(P=D)=P_D&(9)\\ P_A+P_B+P_C=1&(10)\\ \end{array} \right. \end{equation} s.t. P(D=V)=31P(D=G)=32P(P=D1D2=G)=P(P=D1){M=D}{D=G}={M=D}{M=D}{D=V}={M=D}{P=D}=P(M=LP=D,D=V)=PMP(M=FP=D,D=V)=PMP(P=D)=PDPA+PB+PC=1(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)
  其中,D表示A,B,C中任一字母,F表示参赛者选择后剩余门编号靠前的门,L表示编号更靠后的门。
  不妨约定参赛者选择门A,那么接下来,Monty Hall打开的不是门B就是门C。于是,问题变成参赛者是应该继续坚持选择门A,还是放弃门A(改选成门C或门B)?或者说,是门A后是汽车的概率更大,还是门C或门B后是汽车的概率更大?
  基于上述约定,这两种选择中奖汽车的概率分别是 P ( A = V ∣ { P = A , M = C } ∪ { P = A , M = B } ) P(A=V|\{P=A,M=C\}\cup\{P=A,M=B\}) P(A=V{P=A,M=C}{P=A,M=B}) P ( { B = V } ∪ { C = V } ∣ { P = A , M = C } ∪ { P = A , M = B } ) P(\{B=V\}\cup\{C=V\}|\{P=A,M=C\}\cup\{P=A,M=B\}) P({B=V}{C=V}{P=A,M=C}{P=A,M=B})。很显然,它们互为对立事件,但谁发生的概率更大?
  然而,由式(6)我们可以推出:
{ P = A , M = C } ∪ { P = A , M = B } = { P = A } (11) \{P=A,M=C\}\cup\{P=A,M=B\}=\{P=A\} \tag{11} {P=A,M=C}{P=A,M=B}={P=A}(11)
  于是,再结合式(1)与式(3):
P ( A = V ∣ { P = A , M = C } ∪ { P = A , M = B } ) = P ( A = V ∣ P = A ) = 1 3 \begin{align}\notag P(A=V|\{P=A,M=C\}\cup\{P=A,M=B\})={}& P(A=V|P=A) \\ ={}& \frac{1}{3} \tag{12} \end{align} P(A=V{P=A,M=C}{P=A,M=B})==P(A=VP=A)31(12)
  那么,
P ( { B = V } ∪ { C = V } ∣ { P = A , M = C } ∪ { P = A , M = B } ) = P ( { B = V } ∪ { C = V } ∣ P = A ) = 2 3 \begin{align}\notag P(\{B=V\}\cup\{C=V\}|\{P=A,M=C\}\cup\{P=A,M=B\})={}& P(\{B=V\}\cup\{C=V\}|P=A) \\ ={}& \frac{2}{3} \tag{13} \end{align} P({B=V}{C=V}{P=A,M=C}{P=A,M=B})==P({B=V}{C=V}P=A)32(13)
  也就是说,参赛者若选择坚持最初的选择并获得汽车的概率等价于参赛者做一次选择就获得汽车的概率—— 1 3 \frac{1}{3} 31;参赛者若改变最初的选择去选择最后剩下的那扇门并获得汽车的概率等价于参赛者最初选择选不中汽车的概率—— 2 3 \frac{2}{3} 32
  看到这里,相信不少读者有一种“大失所望的感觉”。一方面,前面做了这么多的铺垫,可最终答案却绕开了我们大部分的分析和假设,有很多假设和条件都没用上,好像做了许多无用功;另一方面,问题明明是“Monty帮参赛者排除了剩下两扇门中的山羊门后,参赛者坚持最初选择和重新选择的概率分别是多少”,可最后问题却等价成了“参赛者选择了一扇门后,这扇门是汽车的概率和其他两扇门中有汽车的概率分别是多少”,这分明是两个不同的问题嘛!如果这两个问题是等价的,那么Monty存在的意义又是什么?
  那么,我们不妨放弃捷径,一步一步慢慢计算、仔细体会。
P ( A = V ∣ { P = A , M = C } ∪ { P = A , M = B } ) = P ( { A = V } ∩ ( { P = A , M = C } ∪ { P = A , M = B } ) ) P ( { P = A , M = C } ∪ { P = A , M = B } ) \begin{align}\notag P(A=V|\{P=A,M=C\}\cup\{P=A,M=B\})={}&\frac{P(\{A=V\}\cap(\{P=A,M=C\}\cup\{P=A,M=B\}))}{P(\{P=A,M=C\}\cup\{P=A,M=B\})}\\ \end{align} P(A=V{P=A,M=C}{P=A,M=B})=P({P=A,M=C}{P=A,M=B})P({A=V}({P=A,M=C}{P=A,M=B}))
  根据集合的运算规则: A ∩ ( B ∪ C ) = ( A ∩ B ) ∪ ( A ∩ C ) A\cap(B\cup C)=(A\cap B)\cup(A\cap C) A(BC)=(AB)(AC),上式就变成:
P ( A = V ∣ { P = A , M = C } ∪ { P = A , M = B } ) = P ( { A = V , P = A , M = C } ∪ { A = V , P = A , M = B } ) ) P ( { P = A , M = C } ∪ { P = A , M = B } ) \begin{align}\notag P(A=V|\{P=A,M=C\}\cup\{P=A,M=B\})={}&\frac{P(\{A=V,P=A,M=C\}\cup\{A=V,P=A,M=B\}))}{P(\{P=A,M=C\}\cup\{P=A,M=B\})}\\ \end{align} P(A=V{P=A,M=C}{P=A,M=B})=P({P=A,M=C}{P=A,M=B})P({A=V,P=A,M=C}{A=V,P=A,M=B}))
  显然,M不可能既是B又是C,因此 { A = V , P = A , M = C } ∩ { A = V , P = A , M = B } = ∅ \{A=V,P=A,M=C\}\cap\{A=V,P=A,M=B\}=\emptyset {A=V,P=A,M=C}{A=V,P=A,M=B}= { P = A , M = C } ∩ { P = A , M = B } = ∅ \{P=A,M=C\}\cap\{P=A,M=B\}=\emptyset {P=A,M=C}{P=A,M=B}=
  于是有式(14):
P ( A = V ∣ { P = A , M = C } ∪ { P = A , M = B } ) = P ( A = V , P = A , M = C ) + P ( A = V , P = A , M = B ) P ( P = A , M = C ) + P ( P = A , M = B ) \begin{align}\notag P(A=V|\{P=A,M=C\}\cup\{P=A,M=B\})={}&\frac{P(A=V,P=A,M=C)+P(A=V,P=A,M=B)}{P(P=A,M=C)+P(P=A,M=B)}\\ \tag{14} \end{align} P(A=V{P=A,M=C}{P=A,M=B})=P(P=A,M=C)+P(P=A,M=B)P(A=V,P=A,M=C)+P(A=V,P=A,M=B)
  因此,只需要分别求出 P ( A = V , P = A , M = C ) P(A=V,P=A,M=C) P(A=V,P=A,M=C) P ( A = V , P = A , M = B ) P(A=V,P=A,M=B) P(A=V,P=A,M=B) P ( P = A , M = C ) P(P=A,M=C) P(P=A,M=C) P ( P = A , M = B ) P(P=A,M=B) P(P=A,M=B)即可。

P ( A = V , P = A , M = C ) P(A=V,P=A,M=C) P(A=V,P=A,M=C) P ( A = V , P = A , M = B ) P(A=V,P=A,M=B) P(A=V,P=A,M=B)的求解

  由(7)式不难得出:
{ P ( M = C ∣ P = A , A = V ) = P M P ( M = B ∣ P = A , A = V ) = 1 − P M \begin{align}\tag{15} \left\{ \begin{array}{lr} P(M=C|P=A,A=V)=P_M \\ P(M=B|P=A,A=V)=1-P_M\notag \end{array} \right. \end{align} {P(M=CP=A,A=V)=PMP(M=BP=A,A=V)=1PM(15)
  于是有
{ P ( A = V , P = A , M = C ) = P ( M = C ∣ P = A , A = V ) ⋅ P ( P = A , A = V ) P ( A = V , P = A , M = B ) = P ( M = B ∣ P = A , A = V ) ⋅ P ( P = A , A = V ) \begin{align}\tag{16} \left\{ \begin{array}{lr} P(A=V,P=A,M=C)=P(M=C|P=A,A=V)·P(P=A,A=V)\\ \notag P(A=V,P=A,M=B)=P(M=B|P=A,A=V)·P(P=A,A=V)\notag \end{array} \right. \end{align} {P(A=V,P=A,M=C)=P(M=CP=A,A=V)P(P=A,A=V)P(A=V,P=A,M=B)=P(M=BP=A,A=V)P(P=A,A=V)(16)
  根据(3)的独立性条件,不难推出:
P ( A = V , P = A ) = P ( P = A ) P ( A = V ) \begin{align} P(A=V,P=A)=P(P=A)P(A=V)\tag{17} \end{align} P(A=V,P=A)=P(P=A)P(A=V)(17)
  再由(1)和(9)得到:
P ( A = V , P = A ) = 1 3 P A \begin{align} P(A=V,P=A)=\frac{1}{3}P_A\tag{18} \end{align} P(A=V,P=A)=31PA(18)
  因此,
P ( A = V , P = A , M = C ) = P ( M = C ∣ P = A , A = V ) ⋅ P ( P = A , A = V ) = 1 3 P A P M \begin{align}\notag P(A=V,P=A,M=C)={}&P(M=C|P=A,A=V)·P(P=A,A=V)\\ \notag ={}&\frac{1}{3}P_AP_M\tag{19} \end{align} P(A=V,P=A,M=C)==P(M=CP=A,A=V)P(P=A,A=V)31PAPM(19)
  以及,
P ( A = V , P = A , M = B ) = P ( M = B ∣ P = A , A = V ) ⋅ P ( P = A , A = V ) = 1 3 P A ( 1 − P M ) \begin{align}\notag P(A=V,P=A,M=B)={}&P(M=B|P=A,A=V)·P(P=A,A=V)\\ \notag ={}&\frac{1}{3}P_A(1-P_M)\tag{20} \end{align} P(A=V,P=A,M=B)==P(M=BP=A,A=V)P(P=A,A=V)31PA(1PM)(20)

P ( P = A , M = C ) P(P=A,M=C) P(P=A,M=C) P ( P = A , M = B ) P(P=A,M=B) P(P=A,M=B)的求解

   P ( P = A , M = C ) P(P=A,M=C) P(P=A,M=C) P ( P = A , M = B ) P(P=A,M=B) P(P=A,M=B)的求解过程是类似的,就以事件{P=A,M=C}为例,我们需要对它进行剖析。事实上,如果我们从门A道具的可能情况对事件{P=A,M=C}进行拆分,可以看成{P=A,M=C}是由事件{P=A,M=C,A=V}和{P=A,M=C,A=G}构成的。即
{ { P = A , M = C } = { P = A , M = C , A = V } ∪ { P = A , M = C , A = G } { P = A , M = C , A = V } ∩ { P = A , M = C , A = G } = ∅ \begin{align}\tag{21} \left\{ \begin{array}{lr} \{P=A,M=C\}=\{P=A,M=C,A=V\}\cup\{P=A,M=C,A=G\}\\ \{P=A,M=C,A=V\}\cap\{P=A,M=C,A=G\}=\emptyset \end{array} \right. \end{align} {{P=A,M=C}={P=A,M=C,A=V}{P=A,M=C,A=G}{P=A,M=C,A=V}{P=A,M=C,A=G}=(21)
  而事件{P=A,M=C,A=V}我们是熟悉的,因为我们已经算出了它的概率(见式(19))。接下来,值得我们好好研究的就是事件{P=A,M=C,A=G}。
  熟悉了条件(4)-(6)的读者很快能反应出来,事件{P=A,M=C,A=G}和事件{P=A,B=V}其实是一个意思,因为它们同时都是事件{P=A,M=C,A=G,B=V,C=G}(不信的话可以自己取交集)。
  用大白话来讲,事件{P=A,M=C,A=G}就是参赛者选择了A门,Monty选择了C门,A门是山羊的情况。那B门和C门的道具我们是否清楚呢?答案是肯定的,因为同时满足上述三个条件的情况,只可能是C门是山羊(Monty开了C门),B门是汽车(A门,C门都是山羊),也就是事件{P=A,M=C,A=G,B=V,C=G}。
  那事件{P=A,B=V}呢?也能得出一样的结果吗?答案也是肯定的,因为玩家选择了A门,那么Monty只可能开B门或C门,但B门是汽车,那么Monty只可能开C门,同时A门和C门都是山羊(因为B门是汽车),也就等同于事件{P=A,M=C,A=G,B=V,C=G}。
  因此,不难得出下式:
P ( P = A , M = C , A = G ) = P ( P = A , B = V ) \begin{align}\notag P(P=A,M=C,A=G)=P(P=A,B=V)\tag{22} \end{align} P(P=A,M=C,A=G)=P(P=A,B=V)(22)
  再根据(3)式,轻松得到:
P ( P = A , M = C , A = G ) = P ( P = A , B = V ) = P ( P = A ) P ( B = V ) = 1 3 P A \begin{align}\notag P(P=A,M=C,A=G)={}&P(P=A,B=V)\\ \notag ={}&P(P=A)P(B=V)\\ \notag ={}&\frac{1}{3}P_A \tag{23} \end{align} P(P=A,M=C,A=G)===P(P=A,B=V)P(P=A)P(B=V)31PA(23)
  根据(21),有下式:
P ( P = A , M = C ) = P ( P = A , M = C , A = V ) + P ( P = A , M = C , A = G ) \begin{align} \tag{24} P(P=A,M=C)={}&P(P=A,M=C,A=V)+P(P=A,M=C,A=G) \end{align} P(P=A,M=C)=P(P=A,M=C,A=V)+P(P=A,M=C,A=G)(24)
  (24)式再结合(18)和(19)式,得到:
P ( P = A , M = C ) = P ( P = A , M = C , A = V ) + P ( P = A , B = V ) = 1 3 P A P M + 1 3 P A \begin{align}\notag P(P=A,M=C)={}&P(P=A,M=C,A=V)+P(P=A,B=V)\\ \notag ={}&\frac{1}{3}P_AP_M+\frac{1}{3}P_A \tag{25} \end{align} P(P=A,M=C)==P(P=A,M=C,A=V)+P(P=A,B=V)31PAPM+31PA(25)
  同理,
P ( P = A , M = B ) = P ( P = A , M = B , A = V ) + P ( P = A , C = V ) = 1 3 P A ( 1 − P M ) + 1 3 P A \begin{align}\notag P(P=A,M=B)={}&P(P=A,M=B,A=V)+P(P=A,C=V)\\ \notag ={}&\frac{1}{3}P_A(1-P_M)+\frac{1}{3}P_A \tag{26} \end{align} P(P=A,M=B)==P(P=A,M=B,A=V)+P(P=A,C=V)31PA(1PM)+31PA(26)

最终的求解

  到这里,答案已非常明朗了。
  根据(14)式、(19)式、(20)式、(25)式和(26)式,得到:
P ( A = V ∣ { P = A , M = C } ∪ { P = A , M = B } ) = P ( A = V , P = A , M = C ) + P ( A = V , P = A , M = B ) P ( P = A , M = C ) + P ( P = A , M = B ) = 1 3 P A ( 1 − P M ) + 1 3 P A P M 1 3 P A P M + 1 3 P A + 1 3 P A ( 1 − P M ) + 1 3 P A = 1 3 \begin{align}\notag P(A=V|\{P=A,M=C\}\cup\{P=A,M=B\})={}&\frac{P(A=V,P=A,M=C)+P(A=V,P=A,M=B)}{P(P=A,M=C)+P(P=A,M=B)}\notag \\ ={}& \frac{\frac{1}{3}P_A(1-P_M)+\frac{1}{3}P_AP_M}{\frac{1}{3}P_AP_M+\frac{1}{3}P_A +\frac{1}{3}P_A(1-P_M)+\frac{1}{3}P_A }\notag \\ ={}& \frac{1}{3} \tag{27} \end{align} P(A=V{P=A,M=C}{P=A,M=B})===P(P=A,M=C)+P(P=A,M=B)P(A=V,P=A,M=C)+P(A=V,P=A,M=B)31PAPM+31PA+31PA(1PM)+31PA31PA(1PM)+31PAPM31(27)
  由于是对立事件:
P ( { B = V } ∪ { C = V } ∣ { P = A , M = C } ∪ { P = A , M = B } ) = 1 − P ( A = V ∣ { P = A , M = C } ∪ { P = A , M = B } ) = 2 3 \begin{align}\notag P(\{B=V\}\cup\{C=V\}|\{P=A,M=C\}\cup\{P=A,M=B\})={}&1-P(A=V|\{P=A,M=C\}\cup\{P=A,M=B\})\\ \tag{28} ={}&\frac{2}{3} \end{align} P({B=V}{C=V}{P=A,M=C}{P=A,M=B})==1P(A=V{P=A,M=C}{P=A,M=B})32(28)
  当然,也可以分步计算更换初始选择后中奖汽车的概率,只不过过程会更加繁琐。但毋庸置疑的是,不论 P A P_A PA P M P_M PM取值多少,最终的结果都是一样的。即,参赛者和Monty选A门、B门还是C门对最终中奖的概率是没有影响的,最终中奖的概率取决于参赛者是否选择让Monty提供的信息改变自己的初始选择。

从信息论角度的理解

  在游戏初始,参赛者所获信息有限,导致其无论怎么做出选择,都只能以 1 3 \frac{1}{3} 31的概率获得汽车。然而,Monty排除一扇藏有山羊的门的行为,带来了丰富的信息:第一,Monty排除的是山羊门,直接提升了参赛者选中汽车的概率;第二,Monty排除的是参赛者所选剩下的山羊门,这个信息甚至比Monty直接告诉参赛者“你所选的是山羊门”都更有用,因为参赛者大概率是不会一开始就选中汽车门的,而Monty帮参赛者排除了另一扇有山羊的门,那么最后的门是汽车的概率非常大。
  可如果是这样,为什么Monty的信息只能提升“改变选择后中奖汽车的概率”却不能提升“继续坚持初始选择的中奖概率”呢?这是因为参赛者的初始选择在先,其中奖汽车的概率不应当受到后面Monty提供信息的影响,即未来不能影响历史。如果参赛者始终坚持自己的最初选择,哪怕在此之后收到了Monty提供的信息,但只要不改变选择,这条信息就不能发挥作用,也就无法提升中奖汽车的概率!
  这也就完美解释了,为什么认为“不存在最优解”、“不管是否改变现有选择,最终中汽车的概率都是 1 2 \frac{1}{2} 21”的思路和结论都是错误的,因为这种思路武断地认为,Monty的行为对两种选择中奖汽车概率的提升是相同的。

从博弈思维(直觉)的理解

  博弈的思维需要参赛者进行“换位思考”。假设参赛者一开始选择了A门,但Monty帮他排除了C门。此时,参赛者需要思考的是:“为什么Monty不排除B门,偏偏排除了C门?Monty是清楚知道山羊和汽车分别藏在哪些门后的,而我大概率是不会猜中藏有汽车的门的。因此最可能的情况是,我猜到的A门是藏有山羊的门,而Monty选C门是因为只剩下C门藏有山羊,B门藏着的是汽车。因此,我需要放弃现有选择,重新选择B门。”由此可见,从博弈的角度考虑,参赛者也应当放弃原有选择,而重新选择剩下的最后那扇门。

仿真模拟

  我们可以编写一段简单的程序来模拟上述过程。一方面,我们可以分别试验100次、1000次、10000次来估算参赛者两种不同选择的中奖概率;另一方面,我们可以尝试不同 P M P_M PM的概率,来对比一下最终中奖概率是否会有显著差异。

样本数 P_M 是否改变选择 中奖概率
100 0.01 0.31
100 0.5 0.28
100 0.99 0.32
1000 0.01 0.332
1000 0.5 0.325
1000 0.99 0.353
10000 0.01 0.3327
10000 0.5 0.336
10000 0.99 0.3387
100 0.01 0.69
100 0.5 0.63
100 0.99 0.61
1000 0.01 0.677
1000 0.5 0.713
1000 0.99 0.674
10000 0.01 0.6648
10000 0.5 0.6741
10000 0.99 0.6567

  可以看出,随着试验次数的增加,参赛者不改变初始选择和改变初始选择的中奖概率分别越来越接近 1 3 \frac{1}{3} 31 2 3 \frac{2}{3} 32,同时我们也能看出 P M P_M PM的取值对最终获奖概率并没有显著的影响。
  部分代码展示:

from scipy.stats import bernoulli
import random
import pandas as pd
#-----------------------definition zone----------------------
class MontyHallProblem:
	def __init__(self,P_M:float,Door:str,choice:bool):
		self.P_M = P_M						#Monty在玩家初始选择后剩下的门里选择编号靠后的门的概率
		self.Door = Door					#玩家Player初始选择的门号
		self.dict = {'A':0,'B':0,'C':0}		#0表示山羊;1表示汽车;初始时假设都是山羊,我们只需要随机选一个门改成汽车即可
		self.choice = choice				#False表示玩家不会更改最初选择;True表示玩家会放弃最初选择
		self.range = ['A','B','C']
	def ItemsDistribution(self):
		Doors = ['A','B','C']		
		car_loc = random.choice(self.range)
		self.dict[car_loc] = 1
		print('道具分布情况是:',self.dict)
		return car_loc
	def MontyHall(self):
		self.range.remove(self.Door)
		if self.dict[self.range[0]] == 0:
			if self.dict[self.range[1]] == 0:
				arr = bernoulli.rvs(p=self.P_M,size=1)#这个返回的是一个列表,虽然只有一个数字
				x = arr[0]
				result = self.range.pop(x)
				print('剩余两扇门都是山羊,Monty打开了门',result)			
				return result
			else:
				result = self.range.pop(0)
				print(result+'是山羊,',self.range[0],'是汽车,','Monty 打开了门',result)
				return result
		elif self.dict[self.range[1]] == 0:
			result = self.range.pop(1)
			print(result+'是山羊,',self.range[0],'是汽车,','Monty 打开了门',result)
			return result
		else:
			print('unknown error')
			exit(0)
	def win(self):
		if self.choice:
			if self.dict[self.range[0]] == 1:
				print('玩家重新选择了门',self.range[0],',获得了汽车!')
				return 1					
			else:
				print('玩家重新选择了门',self.range[0],',但获得了山羊')
				return 0
		else:
			if self.dict[self.Door] == 1:
				print('玩家坚持选择门',self.Door,',获得了汽车!')
				return 1					#1表示中奖汽车;0表示中奖山羊
			else:
				print('玩家坚持选择门',self.Door,',但获得了山羊!')
				return 0

  内容会持续完善,欢迎批评与指正!
参考文献:
[1]: JUDEA PEARL M G, NICHOLAS P.JEWELL. Statistical and Causal Models [M]. Wiley, 2016.

你可能感兴趣的:(蒙提霍尔问题,蒙特卡洛模拟,python,概率论)