停止寻找的最佳时间 - 阮一峰的网络日志 (www.ruanyifeng.com)

本周话题:停止寻找的最佳时间

最近,我读了一本算法书,作者是美国科普作家布赖恩・克里斯蒂安(Brian Christian)。

英文书名叫做《Algorithms to Live By》(生活中的算法)。

我读的是中译本,书名译成《算法之美》(中信出版社,2018)。

说实话,这个书名有点误导。我以为讲的是编程算法,其实是生活中的数学知识。

这本书的优点是,面向普通读者,偏重于文字解释和举例,比较通俗。缺点恰恰也是这个,因为没有任何公式和代码,不可能对算法有透彻的理解。好多地方我都被卡住了,想不明白怎么推理(可能是翻译的问题)。

但是,它确实讲了很多有趣的数学知识。今天我想分享它的第一章 《最佳停止时间》:什么时候可以停止寻找?

日常生活有很多 "寻找 - 决策过程",如果考察所有选项,要花费很长时间,可能还会错失机会,后面遇到的未必有前面的好。能否确定一个时间点,到了某个阶段就停下来,不再寻找了,这时找到合适候选人的概率最大?

这在数学上称为 "秘书问题"。

某公司招聘一名秘书,有 100 名候选人,依次面试。每面试完一个人,就必须立刻决定是否录取。也就是说,不能面试完所有人,再回过头决定录取哪一个,一旦放弃当前候选人,就只有从后面的面试者中选择。

这个设定是合理的,象征我们在生活中遇到的各种机会。机会来临时,转瞬即逝,必须立刻决定是否抓住它,错过就是错过了。你在三个月前放弃了一个机会,不可能三个月后再捡起来。

大家可以想一想,这时应该面试多少人?

如果录用得太早,可能错过后面更好的候选人;如果录用得太晚,可能错误放走前面的合格人选。

数学家对这个问题,已经有了充分的讨论。经过计算,成功概率最大的方法,叫做 "1/e 法则"。e 是自然对数的底数,约等于 2.718,那么 1/e 就约等于 37%,所以它又称 "37% 法则"。

"37% 法则" 的意思就是,寻找阶段进行到 37% 就要停止。 100个应聘者,先面试前37个,此后的面试只要遇到一个更优秀的,就立刻录取,不再继续面试了。换句话说,前37个面试者无论多么优秀,都不会录取,他们只是用来确定录取的标准。

如果最合适的候选者偏偏在前面 37% 里面,那就只能错过了,作为 "寻找阶段" 不得不付出的成本。最终录取的将是不如前面候选人的次优选择。

这个法则很实用,日常生活中,只要符合 "寻找 - 决策过程" 的场景,都可以适用 37% 法则。

(1)相亲时,假定有 10 个相亲对象,那么前 3~4 个可以作为寻找阶段,后面只要遇到一个比前面更好的人,就可以同意了。

(2)租房时,假定有一个月的找房子时间,那么 30 天的 37﹪也就是 11 天。在找了 11 天之后,你就要出手了。只要发现比先前更令人心动的房子,就不要犹豫,马上租下来。

(3)读书时,假定这本书有 100 页,如果读了 37 页,还没有发现感兴趣的内容,那就可以放弃了。

(4)一个 10 集的电视剧,第 4 集是最佳弃剧时间。

(5)一个 10 分钟的视频,看了 3 分 42 秒,如果还是觉得不好看,就可以关掉了。

(6)一个年轻人想在 18 岁到 24 岁,一共 7 年时间里找到人生方向,确定未来想做什么。那么,他有 2.59 年(7 * 0.37)的时间自由尝试。也就是说,到了大三下学期就应该初步定下自己的方向,后面除非遇到更有吸引力的事情,否则就不应该转换事业方向。