话不多说,先看题干:
现有三个相同的不透明箱子,其中一个箱子A中装有两个红色球,一个箱子B中装有两个蓝色球,另一个箱子C中装有一红一蓝两个球。球的形状一致。现随机选择一个箱子,并从中随机摸出一个球,如果摸出的球为红色,那么请问,该箱的另一个球同样为红色的概率是多少。
这是一道有关“条件概率”的题。一部分对概率论并不熟悉的朋友,会直观地给出一种分析:第一次摸出红球,因此,选中的箱子可能是A,或者C;那么另一只球要么是A中的红球,要么是C中的蓝球,因此另一只球同样为红色的概率,是1/2。
当然,如果你对概率论比较熟悉,特别是对“条件概率”较为熟悉,自然知道上述的解释错在何处。
条件概率的公式大致为:P(在知道x发生的基础上,y发生的概率) = P(x和y都发生的概率) / P(x发生的概率)
我们根据条件概率公式来进行计算:
事件u:第一次摸出的球为红色;
事件v:第一次摸出的球为红色,且另一球为红色;
事件w:第一次摸出的球为红色,且另一球为蓝色。
那么题干所考虑的事件概率为:P(v|u)=P(v)/P(u) = (1/3 * 1)/(1/2) = 2/3。其中分子,有1/3的概率选中A箱,而在此基础上,必然会在第一次抽球时选中红色;而对于分母,第一次抽球,实际上就是从3红3蓝中随机抽一个球,抽中红球的概率是1/2,也就是上式的P(u)。
与之对应,另一个球摸出蓝球的概率是:P(w|u)=P(w)/P(u) = (1/3 * 1/2)/(1/2) = 1/3。不同之处在于,以1/3的概率选中C箱后,箱中有红有蓝,第一次抽中红色球只有一半的几率,所以需要再乘1/2。
也就是说,这一题的正确解答应该为2/3。那么1/2党的解题思路错在哪里呢?实际上,1/2的解释看起来也非常合乎情理。实际上这一思路存在的问题是,如果第一次摸到红球,那么,这只红球来自A箱或来自C箱的概率,实际上并不相等。我们知道,在考虑“另一只球是红是蓝”时,实际上也可以转化为,摸到的第一个红球,是来自A箱,还是来自C箱。
换言之,第一次摸到了红色球,而从直观上理解,这只红色球更有可能来自于A箱,而不是等概率地来自A、C箱,所以不能简单地得到1/2的回答。不知道这个解释能否服众呢?
我知道不少对数学学习并不太深的朋友,一定不太认同“条件概率”这一套公式化的说辞。事实上当今概率论存在的本源就是一个悬案,有兴趣的朋友可以参考频率学派与贝叶斯学派之争。那么我们试图换一个解释。
我知道一定有人会说,虽然A、C箱所装小球有所不同,但既然第一只小球已经确定是红色,那么考察另一只小球的颜色,必然是一个二选一的问题。
量变可以体现出质变,我们把题干拓展一下,方便分析。假如A箱装有100个红球,B箱装有100个蓝球,而C箱装有1个红球,99个蓝球。第一次仍然随机选箱子,摸球,那么假如我们摸到了红色球,试问该箱中再摸一个球也是红球的概率是多少呢?
这么看来,另一个球是红球的概率似乎就要大了不少。因为假如第一次选中的是C箱,而闭着眼睛从100个球中精准摸出1个红球,其实是个小概率事件。所以我们更愿意认为,第一次选中的更有可能是A箱——所以从A箱里再摸一次,仍然应该摸到红球。
问题的核心可以理解为:虽然球的形状没有差异,但是,A箱的红球,和C箱的红球,从“出身”上来说,已经产生了差异化。
所以这个问题如果我们用一个宏观的思想来考量,比如有6个人,一对基佬,一对百合,一对情侣。我们第一次从6人中随便选了一个人,是一个男的,那么请问这个男的是基佬的概率为多少呢?显然他更有可能是基佬吧。这也意味着,他的“另一半”,也就对应的是题干中的另一个球,是男性的概率更大。
当然了,如果你到现在还坚持不承认这道问题的解法,那么我只能跑个小程序模拟一下了。万物皆可模,代码供参考:
import java.util.Arrays;
import java.util.List;
import java.util.Random;
public class Main {
public static void main(String args[]) {
int iterNum =1000000;
System.out.println("进行100万次模拟操作:");
List box1 = Arrays.asList("red", "red");
List box2 = Arrays.asList("blue", "blue");
List box3 = Arrays.asList("red", "blue");
List> boxs = Arrays.asList(box1, box2, box3);
Random rand =new Random();
int A =0, C =0;
for (int i =0; i < iterNum; i++) {
int selectBox = rand.nextInt(3);
int selectBall = rand.nextInt(2);
if (boxs.get(selectBox).get(selectBall) =="blue") {
continue;
}else if (boxs.get(selectBall) == box1) {
A++;
}else {
C++;
}
}
System.out.println("在第一球为红色的基础上:");
System.out.println("第二球为红色的次数为: " + A);
System.out.println("第二球为蓝色的次数为: " + C);
System.out.println("所求概率模拟为: " + (double) A / (A + C));
}
}
事实上,在我心目中,概率论就是当之无愧的最实用型数学知识。最起码学会灵活运用概率论,可以帮助你过滤一大批智商税项目,比如某些保险、对赌、抽奖等(详情也可以参考本公众号曾经的一篇文章【常见韭菜项目的数学原理】)。
甚至不夸张地说,依据本文这道小问题,设计一个游乐园抽奖活动,简直是稳赚不赔:比如交20元参与抽奖,第一次抽中蓝球,则获得一个毛绒玩具(成本大约10元);第一次抽中红球,则打开此箱,如果是红色则获得一张纪念卡片(成本大约5毛),如果是蓝色则返还20元,再送一个毛绒玩具。真有这种机会,估计游乐园的小孩能排着队来送钱。
当然了,实际上类似的把戏已经在街边出现了,比如某些自动贩卖机式的幸运盒子,在此奉劝大家擦亮眼睛。
文章首发于我的公众号 【黑笑小说家】
欢迎关注,一起成长