微信号:programmer_club

介绍:程序员第一自媒体,与你探讨码农人生路上遇到的各类泛技术话题,定期为你推荐码农人生思考、感悟以及启迪!

程序员是怎样判断漂亮女孩是不是单身的?

2017-06-16 22:00 程序员之家

作者:Albert_JIAO

来源:游戏蛮牛

链接:http://songshuhui.net/archives/6277



不解风情的死理性派们在情感生活中不免会遇到这样悲催的一幕:偶然间遇到一位心仪的漂亮女孩,从此日思夜想,废寝忘食,开始了漫长的暗恋之旅,等到一日,在无尽的纠结中,终于鼓起勇气向女孩表白,结果女孩一句“我已经有男朋友了”如晴天霹雳,实在难以接受……


为了避免此种尴尬的发生,如何准确判断一位女生是否单身就成了一项的必修的课程。


如果自己和女孩在一起共事,常常在她的身边,了解她是否单身就不是难题了。可是死理性派们要完成的高难度任务是:作为一个与女孩保持距离的陌生人,在女孩毫无察觉的情况下,就可以用手头有限的信息判断出女孩的单身情况,不仅如此,死理性派追求的结果一定是量化的,计算出的mm单身概率还要保留两位小数。


做法是这样的:第一步,要相信直觉。死理性派可以考虑多找几个朋友一起秘密观察一下目标女孩,当然找的人不要都是死理性派,什么心事鉴定组、谣言粉碎机、自然控、犯罪法医谜最好都找几个来,已婚人士、情场老手、采花大盗也要找一下,人越多越好,越多样化越好。


然后大家根据自己对mm的印象从各自的角度估计一下目标mm单身的概率是多少,投一下票,最后的结果一定会有差异了,仁者见仁,智者见智,可能心事鉴定组觉着女孩单身可能性是90%,谣言粉碎娘却觉着mm单身只是谣言。


死理性派根据这些人平时一贯的靠谱程度,把每个人说出的概率平均一下,原则是平时比较靠谱的人给出的结果考虑的比重就要大一些,不靠谱的人给的数字就要小一些,假设最后得到的结果是:该女孩单身概率为65.65%,我们就完成了第一步。


以上结果只是依靠各位投票者个人经验感性给出的结果,哪里符合死理性派客观理性的做事风格呢?为此,我们要进行第二步,要用事实和证据说话。一个mm是不是单身,可以从很多细节中寻找答案。


就像做科学研究一样,可以先查一下资料,google上随便一搜就可以找到不少寂寞人士多年潜心研究的简单易用的单身判别标准,比如手机原则(恋爱中的女生手机使用频率会比较高),自习原则(单身的女孩常常和几个女生结伴上自习的话)。之后,在自己身边已经知道是否单身的女孩人群中做一下统计实验,当然样本越大越好了,得到



诸如此类的统计值。


当这些“实验数据”都到手了,我们就可以继续了,对刚刚投票出来的概率值65.65%进行修正和优化。依靠的是什么呢? 自然是目标女孩在各项标准上的表现。


比如发现目标mm喜欢和朋友一起去上自习,而根据自己的“统计研究结果”:在已经恋爱的mm中,喜欢和朋友一起去上自习的女孩大约占其中的60%;在没有恋爱的女孩中,喜欢和朋友一起去上自习的女孩大约占其中的30%;


那么现在目标mm是单身的概率就会变为



死理性派心中一定暗暗高兴,希望增大了!


如果研究结果还发现,在单身女孩中,手机使用率高于1.2次/小时占其中的20%;在已经恋爱的女孩中,这一数值则是60%。对于目标女孩的观察结果是,她的手机使用率高于每小时1.2次,那么概率结果又要更新了——



这回mm单身的概率又悲剧地降回了56.02%,死理性派可以去找更多的“评核标准”,做更多的研究,不断更新女孩的单身概率值,让它越来越贴近事实,不过在得到最后的结果之前,自己要先定一个阈值:女孩单身概率超过这个阈值(比如90%),自己才值得出手表白,否则,还是直接死心吧。


不过要注意的是,不管计算次数多少,得到的终归是一个概率值,不是事实,就算经过多次研究,已经可以将目标女孩的单身概率确定到99.9%,马上就准备向她表白了,可是在最后一次对女孩的观察研究中,发现人家和一个男生手挽手的有说有笑,拥抱在一起,那么,女孩的单身概率值会立刻从99.9%掉到接近于0,后果可想而知了……


本文告诉大家的这种判断mm是否单身的科学而严谨的死理性方法称为贝叶斯统计方法。贝叶斯方法简单的说就是“先验概率+新得到的证据=更正后的概率”,可以不受信息量多少的限制,将各种来源的结果,包括主观判断和有限的客观信息,综合到一起,得到最后的结论。这里严正声明,本方法存在一定风险,尝试时需谨慎,小朋友就不要尝试了。


不过话说回来,死理性派发明的贝叶斯大法还是不可小视的,美国海军在汪洋大海里搜索丢失的氢弹、失踪的核潜艇都用过这种方法,下面我们就由情感频道转台到历史频道。


1966年1月的一天,美国一架B-52轰炸机在西班牙的帕洛玛雷斯上空飞过,飞机上的几位飞行员在执行着空军司令部安排给他们的空中加油任务。


按理说这次飞行称不上危险,据说机长还是个很淡定的人,没事儿喜欢拿个大烟斗抽两口,甚至在飞机飞行舱里也不例外。可是这一会机长和他的几个部下可遇到大麻烦了,以后能不能再享用大烟斗都难说了。


在一次加油的时候,负责加油的运输机试图从其右后侧方接近B-52轰炸机,以便把柔性输油管送至对方飞机上。两机速度没有控制好,互相撞擦了一下,这一“亲密接触”不要紧,加油机的油立刻起火爆炸,B-52也被撞的不轻,两架飞机的飞行员当场死的死,跳伞的跳伞……



可是故事还没有完,之后又发生一连串的悲剧和喜剧



为了找那一枚丢失的氢弹,美国赶紧从国内调集了包括了多位专家的搜索部队前往现场,其中也包括一位名为John Craven的数学家,头衔是“美国海军特别计划部首席科学家”,既然是特别的,那就不是一般的,Craven博士做的工作到底有什么特别之处呢?



在寻找氢弹的问题上,Craven提出的方案使用了刚刚提到的贝叶斯方法,他召集了各方面的专家,不过每个专家都有自己擅长的领域,并非通才。有的对于B-52轰炸机了解甚多,却对于氢弹的特性知之甚少。


氢弹如何储存在飞机上是一个问题,氢弹怎么从飞机上掉下来又是一个问题;氢弹会不会和飞机残骸在一起也没有答案;氢弹上的两个降落伞各自打开的概率是多少?风的流速和方向?氢弹落到地上之后会被埋到土里吗?


对于这些各式各样的问题,Craven要求专家们做出各种假设,想象出各种情景,然后在各种情境下猜测出氢弹在各个位置的概率,以及每种情境出现的可能性。


Craven的做法也受到了同行的质疑,因为在他的方案中,结果很多是这些专家以猜测、投票甚至可以说赌博的形式得到的,无法保证所有结果的准确性,可是因为搜索氢弹的任务紧迫,并没有时间进行精确的实验、建立完整可靠的理论,Craven的办法不失为一个可行的办法。


Craven得到了从专家那里“招供”的结果后,综合到一起,画了一张氢弹位置的概率图:把整个可能的区域划分成了很多个小方格,每一个小方格有不同的概率值,有高有低,如同地图上表示山峰和山谷的等高线一样。像判断女孩是否单身的死理性派们一样,Craven完成了贝叶斯方法的第一步。


之后,Craven和搜索部队的指挥官一起开始了对氢弹的搜索,在搜索的过程中同时对每个格子的概率进行更新,不过,概率最大的方格子指示的位置常常是陆地上险峻的峡谷和深海区,即使氢弹真的在那里,也未必找得到,所以需要绘制另一张概率图,表示“氢弹已经在那里,能找到的概率”而不是氢弹位置的概率。最后氢弹被找到,Craven的两张概率图和他的贝叶斯方法发挥了不小作用。


仅仅过了两年,到1968年,Craven又有机会发挥一下才能了,上回丢了个小小的氢弹,这回美国海军丢了个“大个儿”的。


1968年6月海军的天蝎号核潜艇在大西洋亚速海海域一下子失踪了,潜艇和艇上的99名海军官兵全部杳无音信。按照事后调查报告说法,罪魁祸首是这艘潜艇上的一枚奇怪的鱼雷,发射出去后竟然敌我不分,扭头射向自己,让潜艇中弹爆炸。



为了寻找天蝎号的位置,美国海军进行了大规模的搜索,Craven自然也参与其中。由于失事时潜艇航行的速度快慢,方向,爆炸冲击力的大小方向,爆炸时潜艇方向舵的指向都是未知量,即使知道潜艇在哪里爆炸,也很难确定潜艇残骸最后被海水冲到哪里。


Craven初略地估计一下,在半径20英里的圆圈内的海底,天蝎潜艇都有可能躺在那里,要在这么大的范围内、这么深的海底找到潜艇几乎成了不可能完成的任务。


没有专家能准确的估计到,在出事前后潜艇到底发生了什么,和搜索氢弹的时候一样,Craven咨询了数学家、潜艇专家、海事搜救各个领域的专家,编写了各种可能的“剧本”,让他们按照自己的知识和经验对于情况会向哪一个方向发展进行猜测。据说,为了给枯燥的工作增加一些趣味,Craven还准备了威士忌酒作为“投注”正确的奖品。



最后,Craven得到了一张20英里海域的概率图。整个海域被划分成了很多个小格子,每个小格子有两个概率值p和q,p是潜艇躺在这个格子里的概率,q是如果潜艇在这个格子里,它被搜索到的概率。


按照经验,第二个概率值主要跟海域的水深有关,在深海区域搜索时失事潜艇“漏网”的可能性会更大。如果一个格子被搜索后,没有发现潜艇的踪迹,按照贝叶斯原理更新后,这个格子潜艇存在的概率就会降低:



其他各个格子的潜艇存在的概率值就会上升:



每次寻找时会挑选整个区域内潜艇存在概率值最高的一个格子进行搜索,如果没有发现,概率分布图会被“洗牌”一次,搜寻船只就会驶向新的“最可疑格子”进行搜索,这样一直下去,直到找到天蝎为止。


最初的时候,海军人员凭经验估计潜艇是在爆炸点的东侧海底,对于Craven和其它数学家的建议嗤之以鼻,但是几个月的搜索后一无所获。后来海军不得不听从了Craven的建议,按照概率图,失事后的潜艇应该在爆炸点的西侧。经过几次搜索,潜艇果然在爆炸点西南方的海底被找到了。


经过两次给力的表现,Craven在海事搜索中使用的贝叶斯方法逐渐被广为接受,从此,贝叶斯方法意想不到地常常和氢弹、核潜艇一起成为关键词在各处出现。几十年间,贝叶斯方法应用越来越广泛,从google搜索筛选词条到无人驾驶汽车综合判断自己的行驶位置,钻进了各个角落。当然,这个神奇的方法用在追女上实在是大材小用了。


本文获得2011年台湾财团法人国立自然科学博物馆文教基金会第五届人与自然科普写作桂冠奖征文竞赛第三名。

 




在微信公众号内回复数字“1”

小编拉你进粉丝微信群

不是在文章评论里回

 
程序员之家 更多文章 眼看 Android 8.0 都出了,你还对安卓开发一窍不通? 硅谷第一美女:她是雅虎的CEO和Google掌权人,谷歌首位女程序员,科技领域的铁娘子 顶尖程序员5个思维模式,你可能想到却没有做到!! 最吸"金"的IT工作大盘点,有你吗? Hello World 程序的起源与历史
猜您喜欢 创业公司的个人“可伸缩性”方案 Java同学,日常翻看的网站与公众号 完整Java开发中JDBC连接数据库代码和步骤 TypeScript——Web前端开发的救赎 C#版的无人驾驶汽车(附源码)