近期不知为何多个来源 (微博、微信、知乎) 的文章都提到了涉及到 \(37\%\) 这个数字的某个话题。

起初,故事是这样的:

你是一个老板,你想招一个秘书。现在,假设有一百个候选者等着面试。假设这个面试跟一般的不同,你必须当场决定是否聘用当前面试的候选者,而如果你决定不聘用的话,她离开后就再也不会回来了。

作为老板,你当然希望聘用最优秀的人 (不管以何种标准衡量)。

那么问题来了,你应该怎么做,使得最终你聘用的人刚好就是候选者里最优秀的那个人的几率最大?

为了便于讨论,现在再引入一个假定,那就是,假定所有候选者的优秀程度两两不同。

一种做法是,先面试一些人,不管这些人在你看来有多优秀 (或者有多糟糕),都不聘用;之后,只要出现比前面那些都更令你满意的人,则立即聘用她,并且不再面试后面的人。

现在的问题就是,上面这段话里的“一些”,究竟应该取多少呢?

答案是,取总候选人数的 \(37\%\)。

这个数字是怎么来的呢?

数学推导

重述一下整个过程:先面试 \(k\) 个人,找出他们中最优秀的一个,但一个都不聘用,然后,从第 \(k+1\) 个人开始,一旦出现比前 \(k\) 个都优秀的,立即聘用。假定在前 \(k\) 个人之后又面试了 \(i\) 个人才出现这个人;这个人是最优秀的候选者的几率是 \[ \frac{1}{N} \frac{k}{k+i}. \] 对不同的 \(i\) 求和,总的几率是 \[ \begin{split} p_{\text{true}\,\text{love}} & = \frac{1}{N} \sum_{i=0}^{N-k-1}\frac{k}{k+i} \\ &= \frac{k}{N} \left[\frac{1}{k} + \frac{1}{k+1} + \frac{1}{k+2} + \cdots + \frac{1}{N-1}\right]. \end{split} \] 上面方括号里的东西,可以通过下面的级数求和公式 (这个叫调和级数) 得到近似值 \[ 1 + \frac{1}{2} + \frac{1}{3} + \ldots + \frac{1}{N} \approx \ln N + \gamma, \] 上面的 \(\ln\) 是自然对数函数,\(\gamma = 0.57721566\ldots\) 是欧拉常数 (更准确地说,是名为欧拉常数的常数之一)。当然 \(\gamma\) 在这里不重要。使用这个近似关系可得 \[ p_{\text{true}\,\text{love}} \approx \frac{k}{N}\left(\ln N - \ln k\right) = \frac{k}{N}\ln\left(\frac{N}{k}\right). \] \(k\) 取多少时 \(p_{\text{true}\,\text{love}}\) 最大?这归结为求函数 \[ f(x) = -x\ln x \] 的最大值的问题。使用大一 (或者高中?) 数学知识可得最大值出现在下面关系成立的地方 \[ f'(x) = -\ln x -1 = 0, \] 也就是 \[ x = \frac{1}{e} \approx 0.367879\ldots, \] 这里 \(e = 2.71828182845\ldots\) 是自然对数的底 (也叫欧拉常数)。

到这里知道,\(37\%\) 这个数字就是这么来的。

有意思的是,当 \(\frac{k}{N} \approx 0.37\) 的时候,相应的找到最佳候选人的几率 \(p_{\text{true}\,\text{love}}\) 正好也等于 \(0.37\)。这是本文标题的来由。

乍一看你也许觉得这个几率不高:才 \(37\%\)? 但是想想看,这个几率不是别的,是找到最佳候选人的几率,最佳哦。不管候选者是一百个、一万个、还是一亿个,只要使用这种方法,得到最佳候选者的几率都是 \(37\%\)。

这有什么用

除了最开始的招聘场景之外,假设你要找对象。假设你的目标是 30 岁结婚,假设你从 15 岁时 (高中;据说现在高中谈恋爱不算早恋了) 开始找对象。换句话说,你一共有 15 年可以用来找对象。

那么, \[ \begin{split} 15 \times 0.37 &= 5.55 \\ 15 + 5.55 &= 20.55, \end{split} \] 也就是说,当你差不多 21 岁的时候,遇到不错的,就可以定下啦。

不过,与招聘场景不同 (或者类似?),当你觉得对方不错时,对方不一定对你有同样的印象。


当然,也可以应用到租房买房之类的场景。