图 1:本文封面,四类题型各配一句判别信号与一句套路。
同批的真题解析把「线段随机切两刀、三段成三角形」那道题完整推了一遍:翻译不等式、画样本空间、约束围可行域、面积比得 1/4。那是一道题的做法;这篇我们看一类题的做法——面试里的概率题翻来覆去就四种题型,先认出题型,再套用对应的固定套路,绝大多数题都能在五分钟内收尾。
判题顺序:先认题型,再选套路。
拿到题先问四个问题:结果是不是有限且等可能?是,走古典概型。是不是连续区域上均匀取点?是,走几何概型。题面有没有「已知……求……」的前提条件?有,走条件概率。问的是不是「平均多少次/多少个」?是,走数学期望。顺序辨认,套路如下。
古典概型:数得清就用计数。
判别信号是结果有限、每个结果等可能——摸球、掷骰、抽签都属于这类。套路三步:数样本空间总数、数有利事件个数、相除。公式就一行:P(A)=|A|/|Ω|。例子:袋中 3 红 2 白,不放回取 2 球全是红的概率。样本空间是 C(5,2)=10 种取法,有利事件是 C(3,2)=3 种,答案是 3/10。这类题的陷阱不在概率论而在计数——排列组合数错,全题皆输。
几何概型:把变量画进坐标系。
判别信号是连续区间(或区域)上均匀随机取点。套路:把每个随机量设成一个坐标轴,样本空间就是一块几何区域;把事件条件翻译成不等式,围出可行域;概率等于面积比 S(A)/S(Ω)。线段切三段那道题就是这套动作的示范——两个切点撑起单位正方形,「每段小于 1/2」三条线围出两个小三角形,面积比 1/4,这里不再重复推导细节。两个变量用平面面积,三个变量就升级成立体体积,思路不变。
条件概率:有前提就上公式,多阶段用全概率,反向推因用贝叶斯。
判别信号是题面给出前提条件:「已知 B 发生,求 A」。核心公式 P(A|B)=P(AB)/P(B)。如果 B 本身要分多种来源才能算,用全概率公式把 P(B) 按来源拆开;如果问的是反方向的「结果出现了,是哪个原因导致的」,就是贝叶斯公式。经典例子:某病患病率 0.1%,检测灵敏度 99%(患病者 99% 检出阳性)、特异度 99%(健康者 99% 检出阴性),那么检出阳性的人真患病的概率是多少?直觉会说 99%,贝叶斯算是 0.001×0.99÷(0.001×0.99+0.999×0.01)≈9%。阳性大军里九成是健康人的假阳性——基础概率太小,再准的检测也架不住分母大。
数学期望:定义、指示变量与线性性。
判别信号是问「平均要多少次/多少个」。套路按优先级排:能直接按定义 Σx·p 列式就列式;随机变量太复杂就拆成若干个指示变量(某事件是否发生取 1 或 0),利用期望的线性性 E[X+Y]=E[X]+E[Y] 逐个算再求和——线性性不要求独立,这是它最好用的原因;次数有阶段结构时列递推。经典例子是集卡问题:集齐 n 种卡片,期望次数是 n×(1+1/2+…+1/n)。第 k 种新卡片出现时,每种新卡要等 n/(n−k+1) 次,各阶段期望相加即得。n=5 时是 5×137/60≈11.42 次。
四类解析解,一段模拟代码全部复核。
解析推导怕错,蒙特卡洛是最便宜的交叉验证——下面这段代码对上面四类各模拟一百万次(集卡十万次),频率与解析解对照:
// node prob4.js(Node.js 22 实测,节选核心逻辑)
// ① 古典概型:3 红 2 白取 2 红,解析 0.3
// ② 几何概型:三段成三角形,解析 0.25
// ③ 贝叶斯:0.1% 患病率下阳性真患病,解析 ≈0.0902
// ④ 集卡期望:n=5,解析 5×(1+1/2+…+1/5)≈11.4167
实测输出:四类模拟值分别为 0.3002、0.2497、0.0894、11.4236,与解析解全部吻合到小数点后两位以上。面试时主动提「这个结论可以用模拟验证」,是明显的加分动作。
图 2:四类题型的判别信号、通用套路、核心公式与判题顺序。
最后把方法论收成一句话:概率题的难度不在计算,在归类——认对题型,套路是现成的;认错题型,越算越乱。建议把判题的四个问题练成肌肉记忆,再在每类下备一个能默写的经典例题。你最近在面试或工作中遇到过哪类概率题?是按这个谱系套出来的,还是硬算的?欢迎聊聊。