以前某道“选配偶”概率题的一点延拓
先说离题的废话,就是我为什么会突然想到这个东西,因为。。。昨晚在实验室写论文的时候,突然想喝咖啡了,而且想要重口一点!于是,一杯水我加了两条速溶咖啡,于是乎。。。。。。。。。。结果就是。。。。。。。我虽然“相对较早”的上了床,可是尼玛睡不着啊!!睡不着干嘛,然后不知道为什么胡思乱想就想到了这道题了。。。真的。。。相信我。。。然后今天跟老板汇报了一下回家日期,顿觉轻松,于是就把昨晚想的实现了一下。。。整理成此文,以慰我失眠的一夜。。。
题目
其实那道题目有些人听过,甚至也有人看过那道题在几年前的科学松鼠会上的分析,嘛,我就再重述一遍吧~
起源就是大家都听过的柏拉图和苏格拉底的两个有名的对话,柏拉图问什么是爱情,苏格拉底让他不回头去稻田摘最大的麦穗,期间只能摘一次,于是最后空手而回;苏格拉底说这就是爱情!第二次柏拉图问什么婚姻,老师依旧让他这么干,于是他这次摘回一个不怎么好的麦穗,苏格拉底说这就是婚姻!【嘛~故事不精确就别在意了~】
这个其实就是一个找配偶的问题,人生只能结一次婚(一般意义下。。)使这个寓言有了很好的现实教育意义,然后到了现在,作为新时代的有知识
有文化
無节操
的少年少女们想到了应对的方法,他(她)们可以在自己人生的前半部分去交友去观察,然后以此作为参考模板,作为未来选取配偶的标准!
抽象成数学过程就是,假设有n个人轮流向你表白,你可以选择拒掉前面k个人(或者 以不结婚为前提去交往,流氓啊!),然后在k+1个人以后的人里面,只要遇到比前k个人中最好的那个还好的就嫁(娶)了吧~【这尼玛是个毛线的数学建模过程啊!!】
和现实的区别
毕竟是数学模型,所以还明确一下和现实的区别;
第一,现实中你不会预知自己会遇到多少人,但是我们这里假设你预知会有n个人向你表白;
第二,现实中你一直发卡的话,最后的下场可能就是“注孤生”,但是我们这里既然假设了预先知道会有n个人向你表白,那么就假设如果一直发卡,那么最后你就被迫和最后一个人“长相厮守”了;
第三, 你真的确定你这辈子会有人向你表白?!!?你真的确定你这辈子还能选配偶?!!你真的确定?!!
命中真命天子的概率
经常有一部分人,“经常”意义上是指女生,希望找到人生中唯一的那个Mr. Right,除此之外一概不要,她们喜欢说“曾经沧海难为水,除却巫山不是云”(我语文老师死得早,别在意~),那么,这类女生中较聪明者应该怎么样选取参数k,可以让自己更加大的机会找到她们的Mr. Right呢?【以前科学松鼠会上讲的就是这个解法】
其实这个解法很简单,对于一个固定的k,那么假设Mr. Right出现在位置i上,Mr. Right会被选中一个必要条件自然就是i>k;
除此只要还有一个条件,假设前k个人中最好的那个叫做Mr. K,那么在k个人之后,遇到Mr. Right之前,不可以出现比Mr. Right差一些但是比Mr. k要好的Mr. NO2,不然根据我们的规则配偶就是Mr. NO2了;这个条件很容易用等价条件描述,那就是,前i-1个人里面最好的人必须出现在前k个人里面(这个概率是\(\dfrac{k}{i-1}\)),只要满足这个条件,Mr. Right就会成为配偶~【这个是充要条件了】
我们来算一下这个概率,固定k,Mr. Right出现在位置i的话,某女命中Mr. Right的概率是\(\dfrac{k}{i-1}\);
那么很容易算出固定k,Mr. Right在位置随机的情况下,某女命中Mr. Right的概率是:
\(P(k)=\dfrac{1}{n}\sum\limits_{i=k+1}^{n}\dfrac{k}{i-1}=\dfrac{k}{n}\sum\limits_{i=k+1}^{n}\dfrac{1}{i-1}\)
仿真对比
然后我就做了一下仿真,很简单,假设n=100,随机生成1~100的一个排列,数字越大代表这个人“质量越好”,或者说某女和他在一起更幸福,自然在这个情况下Mr. Right就是等于100的那个数了;对于固定的k,统计10000次,然后看看选中Mr. Right的次数有多少~
显然的,k应该从1取到99;仿真结果如下:
Mathematica代码
从结果中可以得到以下结论:
第一,我们的理论分析是没有错的~因为两条线很吻合;
第二,可以根据理论分析,得到k应该等于\(\dfrac{n}{e}\)的时候最大~(\(e=2.71828\)),科学松鼠会上有云:因为\(\dfrac{100}{2.71828}\approx 37\),所以这个方法也叫三七法则~
上面所说的也都是前人分析过的,也是我本科的时候做过的仿真;
配偶质量
我昨晚躺在床上想的问题就是,如果某女并不要求必须要和Mr. Right在一起,只要是个过去的人就好了,那么基于以上规则,此女婚后生活的质量是怎么样子的呢?【为什么我写着写着就变成女找男了。。嘛~毕竟表白是男人的活是吧,算了~】
这种情况下我们所感兴趣的就是固定k,所能得到的配偶的期望值是多少;
我们还是把问题简单化,假设会向此女表白的男人的质量分别是1~100(下次我研究一下符合某些正态分布的情况);
我原本以为应该大概和上面的情况差不多,也就是在\(k=0.37n\)的时候找到的配偶的质量的期望值最大;但是事实上并不是;
理论分析
专门把理论分析挑出来,是因为,数学恐惧症的孩子请直接坐 电梯到下面。。
而对理论分析有兴趣的童鞋,我建议,你先自己推一推,这个还是比课本上的题目难一点点的。。
我们要算配偶期望值,那么我们必然要选算出不同数值的配偶被选中的概率,可以先算一下固定k,然后固定一个数值为d的男人在固定位置i被选中的概率;
要算这个,首先还是要分析出这个男人被选中的条件;
参考上面的思考很容易得出一个充分必要条件,条件有二:
第一,前i-1个人里面最优秀的需要出现在前k个人中,这个和之前的分析是完全一样的,所以概率是\(\dfrac{k}{i-1}\);
第二,数值为d的这个男人必须比前面i-1个男人都要优秀!这个很容易算,第一个男人比他差的概率是\(\dfrac{d-1}{n-1}\),在此基础上第二个男人也比他差那就是再乘\(\dfrac{d-2}{n-2}\),第三个男人也比他差,那么概率就再乘\(\dfrac{d-3}{n-1}\)。。。所以前面i-1个男人都比他差的概率就是:
\(\begin{eqnarray*}& &\dfrac{d-1}{n-1}\times \dfrac{d-2}{n-2}\times \ldots \times\dfrac{d-i+1}{n-i+1} \\& = & \prod\limits_{m=1}^{i-1}\dfrac{d-m}{n-m}\end{eqnarray*}\)
所以固定k,固定i,数值为d的男人被选中的概率是:
\(\dfrac{k}{i-1}\prod\limits_{m=1}^{i-1}\dfrac{d-m}{n-m}\)
那么对i进行积分求和,就可以得到固定k,数值为d的男人被选中的概率是:
\(\begin{eqnarray*}& &\dfrac{1}{n}\sum\limits_{i=k+1}^{n}\dfrac{k}{i-1}\prod\limits_{m=1}^{i-1}\dfrac{d-m}{n-m} \\& = & \dfrac{k}{n}\sum\limits_{i=k+1}^{n}\dfrac{1}{i-1}\prod\limits_{m=1}^{i-1}\dfrac{d-m}{n-m}\end{eqnarray*}\)
然后我们把上面的概率乘d,再对d进行积分,就可以得到固定k,得到的男人的数值的期望了:
\(\begin{eqnarray*}& &\sum\limits_{d=1}^{n}\dfrac{d k}{n}\sum\limits_{i=k+1}^{n}\dfrac{1}{i-1}\prod\limits_{m=1}^{i-1}\dfrac{d-m}{n-m} \\& = & \dfrac{k}{n}\sum\limits_{d=1}^{n}\sum\limits_{i=k+1}^{n}\prod\limits_{m=1}^{i-1}\dfrac{(d-m)d}{(n-m)(i-1)}\end{eqnarray*}\)
有点可怕是吧,但是不难吧~
仿真结果
这个仿真相当好做,无非就是把之前那个仿真中统计的函数从
Length@Select[Table[MakeAChoice[GetRandomSample[n], k], {i, 1, iter}], # == n &]]
变成
Mean@Table[MakeAChoice[GetRandomSample[n], k], {i, 1, iter}]]
令人惊讶的是!!居然只要瞄一下不到10%的人作为婚姻配偶参考模板,就可以获得期望值超过90%的终生配偶了!!用广告语来说就是:
看10个人!!你买不到上当!!看10个人!!你买不到吃亏!!质量超高男友!!括弧,概率意义上,反括弧!!你值得拥有!!王八蛋老板魏积欢已经带着他的男友跑了……
其实这个仔细看一下k=99的值马上就会明白为什么了,一个期望值接近于50,一个接近于0,你说为啥?因为我们的理论分析里面根本没有考虑当找不到合适的时候会被迫选择最后一个这件事!!这个时候期望值就是0了!!
要修正这个问题,太简单了,想一下什么情况下会出现必须以最后一个人为配偶的情况?那就是质量最高的那个人,出现在前k人中了,这种时候就真的是。。。曾经沧海难为水,除却巫山不是云!这个概率自然就是\(\dfrac{k}{n}\),然后这种情况下得到的配偶的数值就是最后一个数了,他的期望值自然是所有人的平均数\(\dfrac{n}{2}\),所以我们的理论分析只要加上\(\dfrac{k}{n}\dfrac{n}{2}=\dfrac{k}{2}\)就可以了,最后结果就是:
\(\dfrac{k}{2}+\dfrac{k}{n}\sum\limits_{d=1}^{n}\sum\limits_{i=k+1}^{n}\prod\limits_{m=1}^{i-1}\dfrac{(d-m)d}{(n-m)(i-1)}\)
这下子就理论和实际都吻合了~
目标高远的女人
昨晚想到上面那部分并没有花太多时间,我的大部分时间是花在下面这个小问题上面,就是,有什么策略可以提高选取的配偶的质量(期望值)的方法么?虽然大半夜我在床上很努力的思考了,但是由于没有动手计算和编程仿真,只能猜想。。。事实上。。最后得到验证的也就下面这个结论而已。。
假设有两种女人,在上面描述的规则下她们的做法是两个极端:
一种认为,我有可能在前k个人当中已经遇到最好的人了,将来如果按照这种情况去找,那么很有可能会落得一个50岁随便找个人(最后表白的那个人)嫁了的结局【你确定50岁还嫁得出去?】,于是她们采用放宽策略,假如说她们前k个人中遇到的最好的男人量化为d,第k个人之后,不一定要遇到大于d的才嫁,稍微松一点的女人觉得只要量化后大于d-1她就可以嫁了,更有些认为大于d-5就嫁了吧~【我总感觉这种女人一般都。。。咳咳。。】
第二种人恰恰相反,这种往往是女强人,她们在前k个人中遇到最好的为d,然后觉得一般人读个高中遇到最好的人是d,我是世界的女强人,至少要达到d+5才嫁!!这种人的做法会出现一种情况就是,只要随便一个大于Mr. Right的值减5的帅哥出现在前k个人中,那么这个女人将嫁不出去了。。。【我总觉得这好像解释了为什么这个世界上女强人都是灭绝师太的原因。。】
然后我就仿了一下真,没做理论分析,反正就是加上一个偏差值后的配偶期望值嘛,偏差值小于0,就是第一种女人,大于0就是第二种女人,等于0就是我们之前一直分析的那种;
我解释一下,从最左下开始到右上,偏差值设定分别是从-5到5,一个显而易见的结论就是:
那些对于提高择偶标准的人而言,并不需要急着说嫁不出去,因为在后面很长的一段时间里面【见上图上面那个平坦的部分】,你所得到的配偶的期望值并不会下降!!
哟西!!我终于为各位FFF团团员不要急着脱团找到了一个很好的科学理论依据了!!
该睡了。。坐等寒假回家状态中。。。
【完】
本文内容遵从CC版权协议,转载请注明出自http://www.kylen314.com
传说中的学霸,你好!
中学生做这种题,可能是学霸,像我这种研究生还在做这种题,那就是战五渣。。
博主真有才,佩服佩服!
呵呵,谢谢夸奖。。写这种东西就是自娱自乐自己玩玩的。。
很有想法啊
因为太闲了,只能胡思乱想。。
学霸你好!
真不是学霸,顶多是学酥贴两行公式代码装学霸。。。
ORZ大神。。。
都不是些什么复杂的东西。。。
我只想说,我了个去。
。。见笑了。。
研究这么深
其实不深。。。躺在床上随便想想的东西。。
你床上是想这个?
是啊。。。喝了大量咖啡失眠。。。
好吧 我可不想这个。。。
这么吊。。
不刁。。
这什么数学什么的,完全看不懂呢。。
除去数学其余的看懂了么?
除去数学,好像就没内容了好吗。。
我明明已经把数学尽量减到最少了。。。
你不是都要大学毕业了么?!!怎么可能看不懂?!
偶也看不懂
学霸
能求别再叫学霸了么。。
大家的im等个人介绍页面都好强大啊。比我的好多了另外我在你那儿留言,提示我auto spammer
是么- -不管怎么样都是么。点击评论框后等一下回复也是么?
是的。我试了很多次。你看看后台有没有提交上去?错误代码是1
额。。好吧,我还是关掉插件,你用的是什么浏览器 确认一下
chrome
你不打算在你的CSS乌云那写点字?
中间那个印章不是么?
那个是我用svg设计的
我是指那个页面,可以在左边或者右边加点文字介绍。。
过段时间准备换个,就不修改了
这种页面有没有办法做成第一次来的人可以看到这个页面,来过的话就不用再显示这个页面了?用php设置cookies?
cookies的话,会加大资源消耗。不过用js控制html5的本地存储,倒是可以
因为感觉这种页面,第一次来的话会慢慢欣赏,我现在就直接跳过。。【另外,你的那个页面如果点中间的印章的话,进入博客后上面那个绿条还是没消失的,你故意的还是?
那是个iframe框架,通过js调用子页面的。所以点击印章后还是在顶级域名页面,bar自然还在
不能去掉的么?我怎么觉得不太协调。。
去掉的话,点击印章后,背景歌曲就没有了
居然有BGM的!!
页面的最新文章,是调用的wp接口,还是rss等提取的?
?
你的个人页面
那不是文章。。
那个右侧的列表
那个真心不是列表- –
那么是啥?
上面介绍 下面小黑条是 hitokoto
Hitokoto这个不错。
以前用过几天Hitokoto,载入好像有点慢。。。可能是我博客的原因。。。后来也有人告诉我也有一些原因是因为他的服务器在美国。。
us域名,必须美国公民实名认证。之前我想注册过的
用js比较快。。
我以前也是用JS,放在footer那里,可能那阵子我测试的自身网络环境也不好。。。。
你这个主题,鼠标放在“回复xxx”上面,没有弹出框。不知道具体回复的哪一条评论
啊,一开始弄多说不知道回复上面可以有显示回复哪条,就把bubble给display none掉了,现在搞回来了。。不过我看你博客好像鼠标放在博主的头像上才会显示多说的信息,别人都不会显示,这个CSS是怎么做到的?用id判断?
“鼠标放在博主的头像上才会显示多说的信息”?这是什么意思?没看懂。我不知道有类似的功能
好吧,别管我。。我本来想说的是,鼠标放在留言者头像那里不是会弹出一个bubble,上面显示你绑定过的社交网络账号和留言数目么?然后我早上打开你的一篇博文,发现只有放在你的头像上才会显示这个bubble,别人的不会,故有此问。。。实际上刚刚去看发现是。。。我碰巧早上看的那几个留言者都是没用多说账号的,所以是不会显示那个bubble的。。我傻了。。
原来如此,这个啊。
校内不能绑定,否则就实名了
这题有意思啊
研究这种东西打发时间很不错~
突然发现你的代码可以隐藏啊
因为有些文章的代码长到离谱(比如扫雷那篇)或者我觉得读者不会感兴趣(比如这篇),但是我又想留一份备份或者给有心人,所以就这么做了。。
有创意
god,择偶前还得算算概率 ..
我要不要加一句免责声明呢?
要得。。
还有配偶这个。。
。。。真学霸,各种不明觉厉——我是小尾巴—–http://www.schydl.com 合原动力呼叫中心,呼入服务,呼出服务,系统集成服务。
这就是学霸与学渣的差距
求别黑。。
没黑你。。。
好高深的学问
一点也不高深。。事实上也不太具有现实意义。。
头都大了。
来逛逛、
我去,这都能用数学来说啊,佩服佩服
我相信原理上数学建模可以分析世间一切问题。。。只要你的建模合理【这篇博文的建模就是逗B。。。】
你的这个信仰我很怀疑。与其说你想信数学建模可以分析一切问题,能不能说是你相信理性、意识可以分析一切问题。与其说是理性、意识可以分析一切问题,能不能说是理性、意识的存在才产生了一切问题。另外‘分析’这个词很中庸啊,反正对不对,有没有深度,谁都可以分析。开开脑洞,吐槽一下!
配图真棒!
配图真棒!
我也觉得很贴题~不过忘了当时搜什么关键词搜到的了。。
求制图工具 –linux下能用吧?
就是Mathematica,有linux的
额..了解…至少$130+每年的那个?我感觉还是自己继续opengl吧
有破解的吧。。我有好些朋友都是linux下用啊。。
找破解当然很容易,只是作为一个程序员还破解,实在有违底线。我知道这么说弄得我看起来很傻或者假正经什么的,我都认了。
额。。。那如果自己研究破解掉来用呢。。。
好吧…避免愧疚的好主意..
如果改成一个男生向n个女生告白,不知结果是怎样。
有区别么?
不错的网站,很喜欢,期待互访
无意溜达到了你的网站 留下足迹
来瞅瞅啦~
求男人质量正态分布的情况的链接
话说男人的质量分布会是什么样的呢_(:з」∠)_