算法之美 之 37% 法则
某同学看了我的朋友圈,说,算法给我的第一感觉就是编程啊。真是聪明,一下子抓到了重点。
什么是算法?
算法 algorithms 是解决问题的一系列步骤(步骤不就是程序吗);下厨房里面的一个个食谱就是算法。
“算法”可以帮助我们处理很多现实问题,虽然实际操作起来限制条件太多,但还是能够提供思路。
好的算法需要正确处理好可能性问题,利用粗略估算在时间与精确度之间做出某种妥协。
这个大原则是不是对我们的思维方式很有指导意义!
具体来说,算法设计告诉我们:
不必总是考虑所有的可选方案
不必每次都追求最佳结果
偶尔犯点儿错误
放下包袱,轻装前进
有的事情可以暂时放一放
相信自己的本能,不要过多思考
要体谅,但不能忘记
忠于自我
这实在不像“科学”,因为太过“智慧”,不过真的很实惠,不是吗。
算法不只是机械呆板的确定性系统,还是可以帮助我们解决超复杂的现实问题的。(以上是朋友圈发的,为了稍有整体性,再搬过来用用)
最优停止理论,如何选择停止观望的时机 - 37%法则
在很多本书里,都看到过这个法则;比如买房子,比如找对象,这个法则告诉我们,何时该小心观察,不要盲目给offer;何时该果断行动,不要错过优秀的。
但坦白说,看过书里较详尽的介绍,我发现之前的理解还是片面,之前的二手知识多少还是有点断章取义了。
好吧,其实我也不能保证自己的理解是正确的,但进一步,哪怕一小步也是好的。
这个算法,源于经典的秘书问题,当你需要面试一名员工,你可以判断谁优秀,但没有具体分数;每次面试一名,可以随时把机会给其中的一个,而对方一定会接会;但如果你否决之前人选,就不能改变主意(限定条件太多了是吗... )
这个时候,普遍认为的效果最佳做法是:摸清情况再行动准则,look - then - leap rule。
事先设定一个“观察期”,在这段时间里,无论人选多优秀,都不接受他,这时的任务是考察目标,收集数据;观察期结束后,就进入“行动期”, 一旦出现比之前最优秀的人还优秀的人选,就立即出手,不再犹豫。
具体的数学推导过程不讨论了哈,只给结论:37%
考察期(可以是时间,也可以是人数)是37%, 其实是在35%-40% 这个范围内,得到最理想结果的可能性就接近最大值 - 37% (也就是说选中最优秀申请人的概率为37%)。
这两个37%的一致性,不是巧合,是科学。
看,最理想方案也有63%的失败率,这是一个令人警醒的事实。
但,从另一个角度看,如果只是随机选择,随着人数的增加,选中最优的可能性是稳步下降的。但这个37%法则无论人数多少,概率都为37%,所以申请人数越多,这个方案越有价值。
再举个例子:
如果你是男性,18岁开始谈恋爱,最晚40岁要结婚;那37%法则,18+(40-18)*37%=26.1岁就要结束观察期,之后碰到好的就求婚。
但注意,条件有变哦:你虽然求婚了,但对方可能拒绝你。
如果可能遭到拒绝,就需要把观察期缩短, 假定被拒绝的可能性是50%,那在25%那个点就要开始行动;遭到拒绝,那就试下一个,直到成功。
这个策略的成功概率和25%那个点一致,也是25%,也还算不错吧。
那,如果可以复活之前被放弃的人选,就可以推迟时间表;假定你吃回头草,对方重新接受你的可能性是50%,前61%你可以不表态,等剩下的39%中有更优秀的再出手;考察完所有的如果仍没有合适的,再回头,去淘汰的里面挑最优。
这时候,选中最优秀人选的概率是61%!
其实,无论是否有拒绝、复活这个条件,最有效的应对仍然是:不要急于表态,观察一段时间后及时出手,只是这个观察期长短不一(这不是废话吗!)
上述情况,数学家称为无信息博弈(候选人只能互相比较,知道谁优谁劣,但无法了解彼此之间的差距),如果候选人可以参加考试,有分数,就成为全信息博弈了。
这时就要运用“阈值准则”,高于某个分数就接受,当然同时仍需密切关注可供选择的人还有多少。但要注意不要低于平均分数,除非你真的别无选择。
这种情况下,选中最优的可能性是58%,比无信息好很多吧。
看过之后,是不是感叹,真是整事不嫌复杂。其实就一句话的道理,弄的很科学的样子。
但我想,可能是这些复杂的科学在前面,而那简单的一句话道理随之而来,融到了我们的生活中。
这是不是就是引言里说的,科学是一种思考方式,可以帮助我们简化问题,得出某些直觉和概念,帮助我们理解其中的关键环节,并取得进展。
书里还有很多其他的理论,我实在没时间和精力看了,数学基础好的同学看看吧。