这是一篇算法文章。
正文今天和老婆去领证,有所感想,你的老婆(老公)是你的初恋的概率有多大?
这个还挺难分析的,幸好在《算法导论》一书中找出了参考答案。
在《算法导论》第五章有一个名为「雇佣问题」的案例,它是这样描述的:
你是一个老板,向猎头公司委托寻找一个秘书职位,猎头每天为你推荐一个应聘者,而你对他进行面试。你的目标是,任用所有应骋者中资质最好的。但由于秘书职位不能空缺,在每次面试完后,都要立即给面试者结果,所以只要当天的面试者资质比现任秘书好,你就解雇现任的秘书,而重新雇佣当天的应骋者。当然,每次确定雇佣时你都要立马支付秘书一笔雇佣费用,解雇时费用不返还。
举个例子,比如有十个人来面试,他们的能力依次为
10 9 8 7 6 5 4 3 2 1
你会发现你找的秘书一届不如一届,只需要支付 1 个单位的费用就行了,这是最省钱的情况。
再举个例子,还是有十个人来面试,他们的能力依次为
1 2 3 4 5 6 7 8 9 10
由于后者的能力都比前者强,意味着你每次面试完都会解雇之前的秘书,然后马上雇佣当天的秘书,支出的费用为 10 个单位。
当然,这是最好和最差的情况,用我们小学二年级就学会的阶乘知识,出现这种情况的概率为 1/10! 。
所以我们需要计算的是一个期望值,根据《算法导论》给出的答案为 lnN,也就是说,如果有十个人来面试,理论上的支付费用为 2.3 个单位。
上面举的例子你应该可以轻松的理解,所以《算法导论》马上增加了难度:
不不不,我们小公司并不需要最好的秘书,时间也比较赶,只需要比较好的秘书就行啦,我想要省钱。
恩恩,你只想要支付尽可能少的雇佣费用。
这个情况就和苏格拉底麦穗的故事一样。
传说古希腊哲学大师苏格拉底的3个弟子曾求教老师,怎样才能找到理想的伴侣。于是苏格拉底带领弟子们来到一片麦田,让他们每人在麦田中选摘一支最大的麦穗——不能走回头路,且只能摘一支。
都是只给你一次选择的机会,你需要怎么样把握?
答案是先观察前面的 K 个秘书,记录下最好秘书的序号,假设为 A,然后继续面试接下来的秘书们,如果后面出现了比 A 更好的秘书,假设为 B,则雇佣 B,停止面试;如果后面的秘书都不如 A,则雇佣 A,停止面试。
K 是多少呢?
《算法导论》经过一系列的数学推导,得出的数值为 n/e。其中 e 为自然对数。
如果参加面试的秘书数量为 100, K = 100 / 2.7 = 37 ,也就是说你需要走马观花的面试这 37 个人,先都委婉的拒绝掉,在后面的面试者里面如果有比 37 人中最好的那个还要好,马上发 offer,如果剩下的 63 人都是渣渣,好马吃回头草,雇佣 37 人中的优秀者。
将这个理论简单粗暴的应用到恋爱婚姻上,挺变态的,做个渣男,前几次只恋爱不结婚,后面遇到比前面更好的马上结婚,这样遇到最合适的人概率最大。
这个结论从反面证明了,从初恋走到结婚的概率有多低,如果你的结婚对象是你的初恋,真的很不容易呀。
那吴师兄领证之前谈了多少个女朋友嘞,我们都是彼此的初恋。
参考阅读:
https://www.zhihu.com/question/332614001/answer/735606441
https://zhuanlan.zhihu.com/p/79865519
https://zhuanlan.zhihu.com/p/70498214
你似乎也发现,「五分钟学算法」这几天都是原创,是的,2021 年开始,程序员吴师兄会每天更新一篇原创文章,包括但不限于算法、数据结构、编程、程序人生等内容,如果哪天觉得写得内容不错,烦请点个赞;如果哪天觉得内容不喜欢,可以隔几天再来看;如果哪天没有更新原创,会发个比较可观的红包。
今天是持续写作第 6 / 100 天。
今天是持续跑步第 2 / 100 天。
如果你有想交流的话题,欢迎留言。