算法证明:女生遇到心动的男人一定要追!

我来讲恋爱中的博弈,不,我来讲恋爱中的算法,不,我来讲算法!!

有个著名的问题,叫做 stable matching。早年是一个可爱的俄罗斯老头在图论课上教我的,印象非常深刻,拿出来娱乐下大家。因为这个算法应用太广泛了,这个算法的两位发明人 David Gale 和 Lloyd Shapley,在 2012 年因为这个算法获得诺贝尔经济学奖。

先说结论:女生遇到心动的男人一定要追!我马上就要来证明。

前方高能预警!!!含大量数学图论及计算机编程算法知识,萌妹子请直接退散。

假设,有一个平行世界,我们姑且叫这个世界,平行世界 999 号,这个世界有 n 个男人,还有 n 个女人,然后每一个男人,都有一个对喜欢的女人的排序,比如男 A,有一个排序(女 A,女 B,一直到女 N),每一个女人都有一个喜欢的男人的排序,比如女 A,有一个排序(男 A,男 B,一直到男 N)。每个男的都会试图去追求自己的排序里头排的最高的女性,每个女的都会接受自己排序里头最高的男性的追求。

再假设这个平行世界 999 号,有以下追求方法(算法):

1. 这个世界上只有男人能够追求女人,女人收到一个男人的追求,可以选择说“你做我男友吧”,或者“你滚犊子”。当女人说“你做我男友吧”的时候,这个男人和女人进入了男女朋友模式,当女人说,“你滚犊子”的时候,这个男人回复单身。

2. 每个男人只能在单身的时候追求女人,而每个女人最多只能有一个男朋友

3. 每个男人都会追求自己名单上排位最高的女人,当被拒之后,会追求排位次高的女人,被拒之后再追第三高的女人,以此类推。每个女人,如果没有男朋友,收到追求,会立刻说,“你做我男友吧”,如果有男朋友,会将现有男朋友与追求者比较,选择其中排位更高的,甩掉排位更低的。

4. 每个男人都会锲而不舍的一直把整个排序追求完,直到脱离单身状态为止。

5. 当每个男的和女的都有一个女、男朋友的时候,会所有人一起结婚。

怎样,是不是和现实很像?让我喝口水继续写!

我的结论是,这个世界里头,一定会有这么一个组合,使得,这 n 个男的,和 n 个女的,会形成一个稳定的一一对应的婚姻关系。也就是说,这 N 个男人和女人,都合理的选择了自己名单上最高的排位的那个对象。

我说的有点乱,因为我学的是用英语学的,而我的翻译实在是不咋地,我先来简化问题:

一、假设这个世界上只有 1 个男人,1 个女人:

那不用想了,排什么排,去滚床单,裸奔,过没羞没躁的生活去吧。

二、假设这个世界上有 2 个男人(男 A,男 B),2 个女人(女 A,女 B):

这就开始复杂了,

如果,男 A 和男 B 的排序都是(女 A,女 B),女 A 和女 B 的排序都是(男 A,男 B)。

那么很简单,男 A 和男 B 一起去追女 A,男 B 迅速杯具,男 A 和女 A 在一起,男 B 和女 B 在一起,故事完结。

如果,男 A 和男 B 的排序都是(女 A,女 B),女 A 和女 B 的排序都是(男 B,男 A)。

那么也很简单,男 A 和男 B 一起去追女 A,男 A 迅速杯具,男 B 和女 A 在一起,男 A 和女 B 在一起,股市完结。

如果,男 A 的排序是 (女 A,女 B),男 B 的排序是(女 B,女 A),女 A 的排序是(男 B,男 A),女 B 的排序是(男 A,男 B)呢,那怎么办?

那么现在,男 A 会去追求女 A,女 A 会说,“你做我男友吧”,男 B 会去追求女 B,女 B 会说“你做我男友吧”。

于是大家结婚了。

所以现在的组合是,男 A 和女 A,男 B 和女 B。

但是!!!但是!!!

你们发现了问题没有???

每个男的都追求到了自己最喜欢的女士,每个女士却只赢得了自己最不喜欢的男士!!!!

这就是这个算法的一个弊端,就是追求者,有占优的可能性。

如果反过来,平行世界 999 里,只允许女人追求男人,会出现下面情况:

女 A 去追求男 B,男 B 会说,“你做我女友吧”,女 B 去追求男 A,男 A 会说“你做我女友吧”。

于是大家都结婚了。

现在的组合是男 A 和女 B,男 B 和女 A。这同样是一个稳定的匹配。

但是!!!但是!!!现在每个女士都追求到了自己最喜欢的男士,每个男士却只赢得了自己最不喜欢的女士!!!

三、推广到 N 男 N 女,也是一样的推论。

简单的说,就是因为这是一个单向筛选,每个男的都会确保会向自己的排序中最高的女性表白。然而男性被“滚犊子”的唯二可能性,是因为这个女性有一个她心目中排序更高的男朋友,或者当了一段时间男朋友,但一个排序更高的男人向她表白。(当然现实中大家也懂,你就是没戏的了,而且是你本来就没戏)

因此,确保了男性一定能追求到自己喜欢的名单里头,排位最高的女性。

也就是说,在这个追求关系里头,主动的那一方更能够找到自己更喜欢的异性,而被动那一方,却没有这样的优势。

所以结论就是,妹子们,遇到喜欢的男人,一定要主动!

原文发布时间为:2015-01-02

时间: 2024-07-31 02:01:42

算法证明:女生遇到心动的男人一定要追!的相关文章

paxos算法证明过程

paxos算法有运作过程和证明过程,运作过程比较清晰明了,但是证明过程就比较复杂了. 很多人能够看懂paxos算法的运行过程,分prepare过程和accept过程,但是总是对证明过程模模糊糊,或者在看证明过程时和运作过程相混淆,特别是下文中的P2c证明P2b的过程,可能会犯下拿运作过程当做已知条件来证明证明过程的错误.所以要想理解证明过程,必须先抛弃运作过程的认知,特别是下面的1-6点都是针对accept过程的,还不存在prepare过程,prepare过程是被逐步引导出来的. 一开始场景只有

【杂乱的生活】在男人眼里你这样的女人是什么

一,倒追  这个男性朋友外表真不怎么样  个矮,还大肚子.脸蛋还行,就是满可爱的.  工作一般般,不算高收入人群,小康没问题.  唯一的优势是有房.独立住房.  女孩外表也一般,工作也一般,家庭也一般  总之什么都一般.  唯一的优势是身高不错,164,对女孩来说不高不矮刚刚好.  两个外表一般的人见面了.  女孩爱上这男的了.各种主动电话短信聊天,主动约时间见面.  去男的家各种帮忙打扫卫生收拾房间什么的.  男的呢,电话接,短信回,约见面就见,见也就是在他家里见.自己在家做面条,俩人吃,吃完

RSA算法介绍

2.1.1     算法实现 首先, 找出三个数, p, q, r,其中 p, q 是两个相异的质数, r 是与 (p-1)(q-1) 互质的数.p, q, r 这三个数便是 private key 接著, 找出 m, 使得 rm == 1 mod (p-1)(q-1) 这个 m 一定存在, 因为 r 与 (p-1)(q-1) 互质, 用辗转相除法就可以得到了 再来, 计算 n = pq m, n 这两个数便是 public key 编码过程是, 若资料为 a, 将其看成是一个大整数, 假设 a

Kruskal算法(二) C++详解

最小生成树 在含有n个顶点的连通图中选择n-1条边,构成一棵极小连通子图,并使该连通子图中n-1条边上权值之和达到最小,则称其为连通网的最小生成树. 例如,对于如上图G4所示的连通网可以有多棵权值总和不相同的生成树. 克鲁斯卡尔算法介绍 克鲁斯卡尔(Kruskal)算法,是用来求加权连通图的最小生成树的算法. 基本思想:按照权值从小到大的顺序选择n-1条边,并保证这n-1条边不构成回路. 具体做法:首先构造一个只含n个顶点的森林,然后依权值从小到大从连通网中选择边加入到森林中,并使森林中不产生回

“正面黑客”解读破解漏洞: 就像追女生

小林是个普通的"正面黑客",去年12月毕业之后正式入职一家安全公司做技术测试员,主要是帮客户做一些网站漏洞监测工作."其实我身边的大部分'正面黑客'也都是从事相关工作."小林如是表示. 其实小林并不是信息安全科班出身,大学他学的是会计行业,但是由于从小对代码方面比较感兴趣,就自学一些相关内容,比如说在i春秋学院看大咖授课,做些在线实验.在两年前他大二的时候就通过万能密码("O R 1=1")成功登录一个政府网站的后台."当时就感觉特别兴

《大数据算法》一2.2 最小生成树代价估计

2.2 最小生成树代价估计 本节讨论最小生成树问题的亚线性算法,首先介绍连通分量个数估计算法,接下来基于此基础算法设计最小生成树代价估计算法. 2.2.1 连通分量个数估计算法 连通分量个数估计问题 输入:一个图G=(V,G),有n个顶点,m条边,该图表示为邻接矩阵,图中结点的最大度为d. 输出:G中连通分量的个数. 这个算法如果用BFS实现,那么每个点的邻居都至少要访问一次,因而精确解的时间复杂度为 . 下面考虑随机化方法.这个算法可以有效地估计连通分量的个数,得到的结果是#CC±εn的概率大

细数二十世纪最伟大的十大算法

发明十大算法的其中几位算法大师 ◆ ◆ ◆ 一.1946 蒙特卡洛方法 [1946: John von Neumann, Stan Ulam, and Nick Metropolis, all at the Los Alamos Scientific Laboratory, cook up the Metropolis algorithm, also known as the Monte Carlo method.] 1946年,美国拉斯阿莫斯国家实验室的三位科学家John von Neuman

【重磅】AlphaZero炼成最强通用棋类AI,DeepMind强化学习算法8小时完爆人类棋类游戏

世界最强围棋AI AlphaGo Zero带给世人的震撼并没有想象中那么久--不是因为大家都去看谁(没)跟谁吃饭了,而是DeepMind再次迅速超越了他们自己,超越了我们剩下所有人的想象. 12月5日,距离发布AlphaGo Zero论文后不到两个月,他们在arXiv上传最新论文<用通用强化学习算法自我对弈,掌握国际象棋和将棋>(Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algori

细数二十世纪最伟大的10大算法

导读:作者July总结了一篇关于计算方法的文章<细数二十世纪最伟大的10大算法>,此文只是本人对算法比较感兴趣,所以也做翻译,学习研究下.以下是文章内容: 发明十大算法的其中几位算法大师 一.1946 蒙特卡洛方法 [1946: John von Neumann, Stan Ulam, and Nick Metropolis, all at the Los Alamos Scientific Laboratory, cook up the Metropolis algorithm, also