看来要先拒绝37%的女人,才能找到真爱

简介:

在每期《非诚勿扰》节目上,面对一位位男嘉宾,24位单身女生要做出不止一次“艰难的决定”:到底要不要继续亮灯?把灯灭掉意味着放弃了这一次机会,继续亮灯则有可能结束节目之旅,放弃了未来更多的选择。

在现实中,面对男生们前仆后继的表白,MM 们也少不了这样的纠结。如果遇到了一个优秀的男生,应该接受还是拒绝呢?如果接受了他,万一下一个更好的话那可就亏大了;可如果为此而拒绝掉一个又一个好男人,也会面对着“过了这个村就没这个店”的风险。说不定白马王子们都已经擦肩而过,到最后就只剩下了猥琐男了,当初的拒绝明显得不偿失。

由于没人能知道真正的缘分何时到来,没人能知道下一个来求爱的男生会是什么样子,接受表白的时机早晚实在很难决定。怎么办?去向《非诚勿扰》的黄菡老师和乐嘉老师请教一下?其实你还可以向欧拉老师请教一下。你没听错。大数学家欧拉对一个神秘的数学常数 e ≈ 2.718 深有研究,这个数字和“拒人问题”竟然有着直接的联系。

“拒人问题”的数学模型

为了便于我们分析,让我们把生活中各种复杂纠纷的恋爱故事抽象成一个简单的数学过程。假设根据过去的经验,MM 可以确定出今后将会遇到的男生个数,比如说 15 个、30 个或者 50 个。不妨把男生的总人数设为 n。这 n 个男生将会以一个随机的顺序排着队依次前来表白。

每次被表白后,MM 都只有两种选择:接受这个男生,结束这场“征婚游戏”,和他永远幸福地生活在一起;或者拒绝这个男生,继续考虑下一个表白者。我们不考虑 MM 脚踏两只船的情况,也不考虑和被拒男生破镜重圆的可能。最后,男人有好有坏,我们不妨假设 MM 心里会给男生们的优劣排出个名次来。

聪明的 MM 会想到一个好办法:先和前面几个男生玩玩,试试水深;大致摸清了男生们的底细后,再开始认真考虑,和第一个比之前所有人都要好的男生发展关系。从数学模型上说,就是先拒掉前面 k 个人,不管这些人有多好;然后从第 k+1 个人开始,一旦看到比之前所有人都要好的人,就毫不犹豫地选择他。不难看出,k 的取值很讲究,太小了达不到试的效果,太大了又会导致真正可选的余地不多了。这就变成了一个纯数学问题:在男生总数 n 已知的情况下,当 k 等于何值时,按上述策略选中最佳男生的概率最大?

如何求出最优的 k 值?

对于某个固定的 k,如果最适合的人出现在了第 i 个位置,6974f81a615af77817187365023ec43bbe442ec3用 x 来表示 k/n 的值,并且假设 n 充分大,则上述公式可以写成:6d194ff0fad652f6048e1004f9e7b6701a3188a8对 -x · ln x 求导,并令这个导数为 0,可以解出 x 的最优值,它就是欧拉研究的神秘常数的倒数—— 1/e !

也就是说,如果你预计求爱者有 n 个人,你应该先拒绝掉前 n/e 个人,静候下一个比这些人都好的人。假设你一共会遇到大概 30 个求爱者,就应该拒绝掉前 30/e ≈ 30/2.718 ≈ 11 个求爱者,然后从第 12 个求爱者开始,一旦发现比前面 11 个求爱者都好的人,就果断接受他。由于 1/e 大约等于 37%,因此这条爱情大法也叫做 37% 法则。

不过,37% 法则有一个小问题:如果最佳人选本来就在这 37% 的人里面,错过这 37% 的人之后,她就再也碰不上更好的了。但在游戏过程中,她并不知道最佳人选已经被拒,因此她会一直痴痴地等待。也就是说,MM 将会有 37% 的概率“失败退场”,或者以被迫选择最后一名求爱者的结局而告终。指导工作与生活的算法,推荐阅读《程序员数学》

37% 法则“实测”!

37% 法则的效果究竟如何呢?我们在计算机上编写程序模拟了当 n = 30 时利用 37% 法则进行选择的过程(如果 MM 始终未接受求爱者,则自动选择最后一名求爱者)。编号越小的男生越次,编号为 30 的男生则表示最佳选择。程序运行 10000 次之后,竟然有大约 4000 次选中最佳男生,可见 37% 法则确实有效啊。

f7ccb12c785a7cc6aba7595ee34b89a5a4fd0d58

计算机模拟 10000 次后得到的结果。

这个问题由数学家 Merrill M. Flood 在 1949 首次提出,这个问题被他取名为“未婚妻问题”。这个问题的精妙之处在于,在微积分界叱咤风云的自然底数 e,竟也出人意料地出现在了这个看似与它毫不相关的问题中。不知道此问题出现后,Geek 男女间会不会多了一种分手的理由:不好意思,你是那 37% 的人⋯⋯


原文发布时间为:2018-10-24

本文作者:Albert

本文来自云栖社区合作伙伴“数据与算法之美”,了解相关信息可以关注“数据与算法之美”。

相关文章
|
6月前
|
人工智能 BI
leetcode代码记录(找到小镇的法官
leetcode代码记录(找到小镇的法官
44 0
|
Java
Java福尔摩斯的约会大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大侦探很快就明白了
Java福尔摩斯的约会大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大侦探很快就明白了
131 0
Java福尔摩斯的约会大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大侦探很快就明白了
|
前端开发 JavaScript 程序员
圣诞临近,小包送给大家一个雪人,一群麋鹿,一堆糖果,一句祝福,圣诞快乐!
圣诞临近,小包送给大家一个雪人,一群麋鹿,一堆糖果,一句祝福,圣诞快乐!
212 0
圣诞临近,小包送给大家一个雪人,一群麋鹿,一堆糖果,一句祝福,圣诞快乐!
|
设计模式 前端开发 JavaScript
那个一年前找不到工作的男人,2021年怎么样了?
那个一年前找不到工作的男人,2021年怎么样了?
|
存储 人工智能 监控
你真的了解计算机病毒吗?内容很“干”,记得喝水(下)
计算机病毒与计算机相伴生的东西,它对计算机的安全构成一定的威胁,一旦病毒计算机遭到病毒入侵,轻则导致信息丢失,重则导致电脑瘫痪。因此,抵御病毒入侵显得十分重要。 想要抵御病毒,你得先了解它们,知道它们长什么样子,是如何侵入计算机的才能很好的抵御它们。
你真的了解计算机病毒吗?内容很“干”,记得喝水(下)
|
开发框架 安全 .NET
你真的了解计算机病毒吗?内容很“干”,记得喝水(上)
计算机病毒与计算机相伴生的东西,它对计算机的安全构成一定的威胁,一旦病毒计算机遭到病毒入侵,轻则导致信息丢失,重则导致电脑瘫痪。因此,抵御病毒入侵显得十分重要。 想要抵御病毒,你得先了解它们,知道它们长什么样子,是如何侵入计算机的才能很好的抵御它们。
你真的了解计算机病毒吗?内容很“干”,记得喝水(上)
|
人工智能 监控 大数据
科技如何改变生活?WIC的一杯牛奶给出了答案
一年一度的互联网大会如期召开,全球互联网进入“乌镇时间”。 在这次大会上,人工智能、物联网、大数据等前沿科技成为“乌镇热词”,5G、北斗导航、区块链这三项新兴技术今年来首次在大会开设专区展示,然而皓哥的目光却被舒化无乳糖牛奶的技术展示所吸引。 牛奶,这种在我们的传统印象中最常食用的营养食品,为何也能在互联网大会上进行展示亮相?接下来我们一探究竟。
172 0
科技如何改变生活?WIC的一杯牛奶给出了答案
|
数据采集 分布式计算 前端开发
我们扒下了全网所有“年夜饭”菜谱,找到了最有年味的一道菜
我们扒下了全网所有“年夜饭”菜谱,找到了最有年味的一道菜
177 0
我们扒下了全网所有“年夜饭”菜谱,找到了最有年味的一道菜
|
存储 监控 安全
杂货机器人翻车实录:会被路人“吓”到,还会跟错主人!3千美元怕是买了个寂寞?
杂货机器人翻车实录:会被路人“吓”到,还会跟错主人!3千美元怕是买了个寂寞?
209 0
|
域名解析 JavaScript 开发工具
他来了,他来了,抱着一个西瓜走过来了!
把开源的大西瓜搬到云开发平台部署起来需要多久?1分钟!把西瓜搬到云开发平台总共分几步,只需三步,下载、上传,部署!也可以继续在CloudIDE中对游戏源码进行一些魔改哦。希望大家过年玩的开心!
979 0
他来了,他来了,抱着一个西瓜走过来了!