假设一个女生愿意在一段时间中和一位男生开始一段感情,并且在这段时间中有N 个男生追求这位女生。说明:这里的N 不是事先确定的,每个女生根据自身条件,并结合以往的经历和经验,猜测确定这个数字N 。比如其它各方面都相同的两个女生,一般来说,PP 的女生就要比不PP 的女生N 值相对要大一些。在适合这个女生的意义上,假设追求者中任何两个男生都是可以比较的,而且没有相等的情况。这样我们对这N 个男生从1 到N 进行编号,其中数字越大表示越适合这个女生。这样在这段时间中,女生的Mr. Right 就是男生N 了。现在问题变成面对这N 个追求者应该以怎样的策略才能使得在第一次选择接受的男生就是N 的可能性最大,注意到这N 个男生是以不同的先后顺序来追求这位女生的。
为了将实际复杂的问题进行简化,我们做出下面几条合理的假设:
1、 N 个男生以不同的先后顺序向女生表白,即在任一时刻不存在两个或两个以上的男
生向这位女生表白的情况的发生,而且任何一种顺序都是完全等概率的。
2、 面对表白后的男生,女生只能做出接受和拒绝两种选择,不存在暧昧或者其它选择。
3、 任一时刻,女生最多只能和一位男生谈恋爱,不存在脚踏多船的情况。
4、 已经被拒绝的男生不会再次追求这位女生。
基于上述假设,我们想要找到这样一种策略,使得女生以最大的概率在第一次选择接受
的那个男生就是N ,i.e. Mr. Right 。
先考虑最简单的一种策略,如果一旦有男生向女生表白,女生就选择接受。这种策略下显然女生以1/N 的概率找到自己的Mr. Right 。当N 比较大的时候,这个概率就很小了,显然这种策略不是最优的。
基于上面这些假设和模型,我们提出这样一种策略:对于最先表白的M 个人,无论女生感觉如何都选择拒绝;以后遇到男生向女生表白的情况,只要这个男生的编号比前面M 个男生的编号都大,即这个男生比前面M 个男生更适合女生,那么女生选择接受,否则选择拒绝。
下面以N=3 为例说明:
三个男生追求女生,共有六种排列方式:
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
如果女生采用上述最简单的策略,那么只有最后两种排列方式选择到Mr. Right ,概率为2/3!=1/3 。
如果女生采用上面我们提出的策略,这里我们取M=1 ,即无论第一个人是否优秀,女生都选择拒绝。然后对于之后的追求者,只要他比第一个男生更适合女生就选择接受,否则拒绝。 基于这种策略,“1 3 2 ”、“2 1 3 ”、“ 2 3 1 ”这三种排列顺序下女生都会在第一次做出接受的选择时遇到“3 ”,这样我们就把这种概率增大到3/3!=1/2 。
现在我们的问题就归结为,对于一般的N ,什么样的M 才会使这种概率达到最大值呢?(在这种模型中,前面M 个男生就被称为“炮灰”,无论他们有多么优秀都要被拒绝)
模型建立:
在这一部分中,根据上面的模型假设,我们先找到对于给定的M 和N(1<M<N) ,女生选择到Mr. Right 的概率的表达式。
1 到N 个数字进行排列共有N! 种 可能。当数字N 出现在第P 位置(M<P<=N ),如果使上述策略在第一次选择接受时遇到的是N ,排列需要满足下面两个条件:
1、 N 在第P 位置
2、 从M+1 到P-1 位置的数字要比前M 位置的最大数字要小
为了将实际复杂的问题进行简化,我们做出下面几条合理的假设:
1、 N 个男生以不同的先后顺序向女生表白,即在任一时刻不存在两个或两个以上的男
生向这位女生表白的情况的发生,而且任何一种顺序都是完全等概率的。
2、 面对表白后的男生,女生只能做出接受和拒绝两种选择,不存在暧昧或者其它选择。
3、 任一时刻,女生最多只能和一位男生谈恋爱,不存在脚踏多船的情况。
4、 已经被拒绝的男生不会再次追求这位女生。
基于上述假设,我们想要找到这样一种策略,使得女生以最大的概率在第一次选择接受
的那个男生就是N ,i.e. Mr. Right 。
先考虑最简单的一种策略,如果一旦有男生向女生表白,女生就选择接受。这种策略下显然女生以1/N 的概率找到自己的Mr. Right 。当N 比较大的时候,这个概率就很小了,显然这种策略不是最优的。
基于上面这些假设和模型,我们提出这样一种策略:对于最先表白的M 个人,无论女生感觉如何都选择拒绝;以后遇到男生向女生表白的情况,只要这个男生的编号比前面M 个男生的编号都大,即这个男生比前面M 个男生更适合女生,那么女生选择接受,否则选择拒绝。
下面以N=3 为例说明:
三个男生追求女生,共有六种排列方式:
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
如果女生采用上述最简单的策略,那么只有最后两种排列方式选择到Mr. Right ,概率为2/3!=1/3 。
如果女生采用上面我们提出的策略,这里我们取M=1 ,即无论第一个人是否优秀,女生都选择拒绝。然后对于之后的追求者,只要他比第一个男生更适合女生就选择接受,否则拒绝。 基于这种策略,“1 3 2 ”、“2 1 3 ”、“ 2 3 1 ”这三种排列顺序下女生都会在第一次做出接受的选择时遇到“3 ”,这样我们就把这种概率增大到3/3!=1/2 。
现在我们的问题就归结为,对于一般的N ,什么样的M 才会使这种概率达到最大值呢?(在这种模型中,前面M 个男生就被称为“炮灰”,无论他们有多么优秀都要被拒绝)
模型建立:
在这一部分中,根据上面的模型假设,我们先找到对于给定的M 和N(1<M<N) ,女生选择到Mr. Right 的概率的表达式。
1 到N 个数字进行排列共有N! 种 可能。当数字N 出现在第P 位置(M<P<=N ),如果使上述策略在第一次选择接受时遇到的是N ,排列需要满足下面两个条件:
1、 N 在第P 位置
2、 从M+1 到P-1 位置的数字要比前M 位置的最大数字要小
运用数学中排列组合的知识,不难知道符合上面两个条件的排列共有
这样对于给定的M 和N ,P 可以从M+1 到N 变化,求和化简后得到给定M 和N 共有
种序列符合要求。
由此得到女生选择接受时遇到Mr. Right 的概率为
解得
当N 比较大时,同理由右不等式可得M ≈N/e , 以上e 为自然对数。
若记[x] 为不大于x 的最大整数,由以上推导我们可猜测当M 取[N/e] 或[N/e]+1 时,该表达式取得最大值。
用MATLAB 仿真,上述结论正确。
结果分析:
由上述分析可以得到如下结论:为了使一个女生以最大的概率在第一次选择接受男生时遇到的正是Mr. Right ,女生应该采用以下的策略:
拒绝前M=[N/e] 或者[N/e]+1 个追求者,当其后的追求者比前M 个追求者更适合则接受,否则拒绝。