zoukankan      html  css  js  c++  java
  • 炮灰模型----------对女生选择追求者的数学模型的建立( LIU Borong,Department of Foreign Language,Tsinghua University)

     

    引言: 

    上周我的一个朋友第N次向女生表白遭到拒绝,作为好朋友的我除了同情之外觉得应该做点什么。之前一次聊天受到师兄的启发,加上出于对数学的兴趣,我对女生“选择与拒绝”的策略试着做了一个简单的建模,并得出比较有意义的结论。

    摘要:

             每一个女生都渴望找到自己心中的白马王子,找到自己一生的幸福。但是面对追求者们,女生应该是选择还是拒绝,怎样才能以最大的可能找到自己的Mr. Right呢?在这篇文章中我们运用数学中概率论的知识对女生选择追求者的这一过程进行数学建模,得到女生的选择的最优策略,最后对结果进行简单的讨论。

    关键词:

        炮灰模型 排列 选择

    模型假设: 

    众所周知生活中涉及到感情的事情是很复杂的,把所有可能影响的因素都考虑到几乎是不可能的。为此我们先对现实进行简化,并做出一些合理的假设,考虑比较简单的一种情况。

    假设一个女生愿意在一段时间中和一位男生开始一段感情,并且在这段时间中有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位置的最大数字要小

    运用数学中排列组合的知识,不难知道符合上面两个条件的排列共有 

     

    这样对于给定的M和N,P可以从M+1到N变化,求和化简后得到给定M和N共有

     

    种序列符合要求。

    由此得到女生选择接受时遇到Mr. Right的概率为

     

    模型求解:(不感兴趣的话可以直接跳过这部分推导)

         这一部分中我们求解使这个表达式取得最大值时M的值。

    记函数 

    , 且设自变量取值为M时,函数取得最大值。

    因此:

     

    所以M应满足

     

    我们知道,当x>0, In(1+x)< x ;

              当x-->0, In(1+x) ~ x 。

    所以由左不等式 

     

    所以:

    当N比较大时,同理由右不等式可得M≈N/e,  以上e为自然对数。

    若记[x]为不大于x的最大整数,由以上推导我们可猜测当M取[N/e]或[N/e]+1时,该表达式取得最大值。

    用MATLAB仿真,上述结论正确。

    结果分析:

    由上述分析可以得到如下结论:为了使一个女生以最大的概率在第一次选择接受男生时遇到的正是Mr. Right,女生应该采用以下的策略:

    拒绝前M=[N/e]或者[N/e]+1个追求者,当其后的追求者比前M个追求者更适合则接受,否则拒绝。

    “打战的时候,很多士兵身先士卒,跑到前线勇往直前。通常来说,走在最前面的,都会给大炮打中(古代的大炮像象个球一样滚过来的)成为灰烬。而后来的士兵,就踏着炮灰走到胜利,所以成为别人利益的牺牲品的人就叫炮灰.。”--------百度上关于炮灰的解释
        

    在本篇文章中介绍的“炮灰模型”中,前M个男生就成了炮灰的角色,无论其有多么优秀,都会被拒绝。

    朋友,如果你追求一个女生而遭到拒绝,看完这篇文章后你会突然发现,也许这不是你的的错,也许你真的很优秀,只是很不幸,你成了“炮灰”。

    这几天在校内上看到很多朋友都因为拒绝或失恋而苦恼。希望上面这些看似复杂的推导和模型对你能有所启发。不要因为一次的拒绝而伤心、失落,振作起来,你的Miss Right is waiting for you somewhere!

    谨以此篇文章献给所有为爱而战的猛士们!

    附:

     

    将这个策略的最优性简证如下(限于篇幅,不借助复杂的数学公式了):

    1.作为“策略”,可以认为应该类似于算法,对于确定的输入有确定的输出。因此对第M号追求者是否同意仅取决于之前M-1个人与该人的状况比较,以及M的大小;进一步地,显然与前M-1个人的好坏顺序无关(因为前M-1个人的顺序与第M个人及以后无关)。

     
    2.如果仅考虑选中N号,那么答应某个人的必要条件是此人比之前的都好(否则一定不是No.N)
    3.综1、2,所有可能的策略都有相同形式:对于第K1,K2,...,Kt号人,如果比以前的都好,OK;如果不符合条件,“还是做朋友吧”
    4.进一步,如果Km + 1<K(m+1),将Km替换为Km + 1。简单计算可以发现(其实是我不想写了)在这一步答应且选对的概率不变(始终是1/n*前面没有答应的概率),但这一步答应的概率减小,后面答应且选对的概率相应增大(如果替换的是Kt,概率不变,但可以接着换K(t-1)使概率增大)。由此可以得出K1到Kt应该是连续整数且Kt=n
    5.(从楼主的文章继续)

    再由作者的理论小推论一下:
    设女性最为灿烂的青春为18-28岁,在这段时间中将会遇到一生中几乎全部的追求者(之前之后的忽略不计),且追求者均匀分布(则女性从18+10/e=21.7即22岁左右开始接受追求……这告诉我们,想谈恋爱找大四的……

    看完之后,我又简单想了一下,在文章中我只考虑了N个男生表白的先后顺序是完全随机的,并没有考虑相邻两次之间的时间隔。如果把时间因素也考虑进去的话,在一个相对较短的时间中,可以近似的假设为齐次泊松过程,这样不仅可以得出女生应该选择上面的第M个男生的结论,而且找到男生表白的最佳时间在t=T/e时刻。 例如如果取时间段为大学四年的话,则T/e=1.4715。 也就是说,在大学四年里,男生表白的最佳时刻在第三个学期的期末或寒假(大二的ddmm们现在要把握机会哟)

    如果这个时间段较长的话,那么男生追求可近似假设为了一个非齐次泊松过程,或者分段齐次泊松过程,具体建模中对各段参数lamma的估计就比较困难了,而且每个人以后的经历都会不同,不太可能找到一个统一的参数集,我就不再进一步考虑了,欢迎大家继续提出改进意见~~ 

    最后祝大家新年快乐!有空来踩踩我的主页~谢谢啦^_^

    MM的各种算法(转)

    1.动态规划,基本上就是说:
    你追一个MM的时候,需要对该MM身边的各闺中密友都好,这样你追MM这个问题
    就分解为对其MM朋友的问题,只有把这些问题都解决了,最终你才能追到MM。
    因此,该问题适用于聪明的MM,懂得“看一个人,不是看他如何对你,而是看
    他如何对他人。”的道理,并且对付这样的MM总能得到最优解。但确定是开销
    较大,因为每个子问题都要好好对待。。。。

    2.贪心法,基本上就是:
    你追一个MM的时候,从相识到相知,每次都采用最aggressive的方式,进攻进攻
    再进攻!从不采用迂回战术或是欲擒故纵之法!目标是以最快的速度确立两人
    关系。
    该法优点是代价小,速度快,但缺点是不是每次都能得到最优解。。。。。

    3.回溯算法,基本上就是: :
    追一个MM,但也许你还是情窦初开的新手,不知道如何才能讨得MM的欢心,于是你只好一条路一条路的试,MM不开心了,你就回溯回去换另一种方式。当然其间你也许会从某些途径得到一些经验,能够判断哪些路径不好,会剪枝(这就是分支估界了)。你也可以随机选择一些路径来实施,说不定能立杆见影(这就是回溯的优化了)但总的来说,你都需要一场持久战。。。。该算法一般也能得到最优解,因为大多数MM会感动滴!!但其缺点是开销大除非你是非要谈一场恋爱不可,否则不推荐使用。特别是你可能还有许多其他的事情要做,比如学习,比如事业。。。。

    4.NP完全问题:
    呵呵,那你为什么那么贱,非要去追呢?记住:“天涯何处无芳草!” . 不过如果你“非如此不可”的话,建议升级你的硬件,好好学习,好好工作,加强实力,人到中年的时候也许你能解开NP难。。。。

    5.网络流:
    MM的时候总避免不了送礼物,但是你老是直接送礼物就会给MM造成很大的压力
    ,于是你就想到了通过朋友来转送的方法。你希望送给MM尽可能多的礼物,所以
    就是需要找到一中配送方案,就是最大流了。然而你请别人帮忙并不是不要开销
    的,你让A同学拿去给B同学可能需要一些花费,自然你不是一个大款,想最小化
    这个花费,那么就是最小费用最大流了……

    6.NP:
    在你追了若干美女都失败告终后,你发现有一批美女追起来是一样困难的,
    如果你能追到其中任何一个就能追到其他所有的美女,你把这样的女人叫作
    NP-Complete。P=NP:这是一个美好的猜想,追美女和恐龙的难度其实一样。
    APX与Random:NP的美女难追,你无法完全占有她。你只好随机的去靠近她
    装作若无其事;或者用一种策略,追到她的一个approximation ratio,
    例如50%。APX-hard:这样的女人,连一个固定的百分比都不给你,还是另谋高就吧。

    7.匹配:从初中到高中到大学大家追来追去,就是个二分图匹配的过程....
    "和谐社会"应该就一个最大匹配...
    可是后来有某些MM同时跟>1个人发展,违背了匹配的基本原则...大家都很BS之...
    然后最近断背山很火,人们惊奇得发现原来还可以是 任意图匹配...

    8.深度优先和广度优先
    深度优先就是追一个mm追到底,直到失败然后换个mm继续追……
    广度优先就是同时追多个mm,一起发展……

    9.前序遍历就是直接搞定MM,然后搞定她爸妈(左)和你自己爸妈(右)
    10.中序遍历就是先搞定未来岳父岳母,然后搞定她,最后告诉你爸妈
    11.后序遍历就是,让未来的岳父岳母和自己爸妈都觉得你们合适之后,才对MM下手,这个时候就没有障碍了啊


    12.STL:
    某位贝尔实验室的大牛在追了N个MM后,为了造福后来人,总结了自己的经验,
    出了本《 MM求爱秘笈大全》,英文名叫Standard courTing Library,
    /* court : vt.向...献殷勤, 追求; vi.求爱)
    缩写为 STL. 广大同学在使用STL后,惊喜地发现追MM变得异常方便,大大缩短了时间和精力...

    用数学模型来表述,就是在众多约束条件下,一个非线性最优化求解问题,极大值点很难有显示解,要求解,得找个合适的数值算法来逼近,把把全国的男人比做自变量,这个函数是个多峰的,很难求全局最优解,比较理想的就是找个局部最优解了,那个局部最优就是聪明漂亮女生的老公了。

  • 相关阅读:
    【.NET】VS2013创建Windows服务与调试服务
    【JS】处理数据四舍五入(tofixed与round的区别详解)
    【微信小程序】 基础语义笔记2:基本组件、获取节点信息
    面向对象和面向过程的优点和缺点
    【微信小程序】 基础语义笔记1:配置、页面文件、组件。
    【微信小程序】 wxParse组件
    zookeeper 碎片知识点
    zookeeper 基本概念
    RocketMQ 知识点
    单例模式---双层检验锁+volatile
  • 原文地址:https://www.cnblogs.com/SkystarX/p/12285938.html
Copyright © 2011-2022 走看看