怎样寻找最佳爱人:一个微积分求解的离散数学问题

概率的计算

最好的那个人在位置1的可能性是多少?跟其他任何位置一样,最好的那个人同样可能在位置1。所有的位置都同样可能,所以每一个位置的概率为p= 1/N。现在,如果最好的那个人在位置1,它被选到的概率是多少?因为第一个k中的任何人我们都不会选择,所以这个概率就是0。所以,在位置1并被选择到的组合概率为:

事实上,对于第一个k的各个位置,P的值都是P= (1/N)·0·0=0。所以,我们有

所以我们又有

在P中,第一个非零项来自位置(k+1)。这个位置上是最佳选择的概率还是为p= 1/N。如果最佳选择在这个位置,那么采用这个程序选择到它的概率为p= 1。在这个点上,

现在,我们需要将这些不同项求和。如果我们能够算出位置k+2的概率,那么我们就能算出其他所有项的概率。于是,让我们来思考位置k+2。

对于这个问题的思考,其中一个办法就是:它怎么才不会被选到。在这种情况下,我们假定最好的选择在位置k+2,于是第一个k中没有一个比它好。然而,如果位置k+1的那个选择比第一个k中任何一个都好,那么在你达到位置k+2之前它就会被选到。我们认为不存在并列最佳,所以在第一个k+1位置中就会出现最好的一个选择。如果这个最佳选项在第一个k+1个位置中,并且居于第一个k之中,那么位置k+1那个选项就不可能比之前的任何一个更好,并且进而我们就会达到位置k+2然后选出这个选项。如果最佳选项在位置k+2之内,我们成功地选出它的概率是p=k/(k+1)。(在数学计算推进中,这是最重要的一点。你要确保自己已经理解这个概率为什么是正确的。)

所以,这时我们有,

接着我们发现,最佳选择在位置k+3的概率仍然是p= 1/N。

如果在第一个k+2位置中的最佳选项居于第一个k之中,那么我们就会选出它。这发生的概率是p=k/(k+2)。所以,

其他选项的可能性都可以同样地确定。所以,我们有,

简化为

这里有一个重要的地方我们要注意,上边的两个方程不是等价的。在第一个中,定义域是k=0,1,2…N-1。然而在第二个中,它被限制为k=1,2…N-1。我们应该考虑,定义域中一个元素的丢失是否会导致重大的问题。当我们考虑k=0的情况,这就表示选出了第一个选项。这个选项为最佳的概率是p= 1/N。我们的函数丢失了这个值,不过我们丢失的这个东西它的值我们已经知道。所以,我们仍然可以把函数

作为我们的模型。

让我们来看一个例子。假设N=5,并且定义域为k=1,2,3,和4,我们有,

在这个例子中我们看到,k=2是最佳的那个值。它给予我们的成功率是0.4333。下表是N的其他几个值的结果。

我们看到,成功的最大概率在稳步下降。这是可以预料的。比起从11或111开始选择,从3开始我们应该有更好的选出最佳选项机会。随着N的增大,这个概率最终会接近值1/N?不列出所有这些值,并且不去看看哪一个最大,那么我们怎样确定k的最佳值?我们能够设计一种算法吗,用它来找到正确的那个值更容易一些?

我们可以借助于微积分吗?为什么我们不用关于k的函数P求导,令这个导数等于零,然后求解?记住重要的一点,P(k)不是一个连续函数。它的定义域仅仅为k= 1,2,3…N。所以标准的演算技术不是我们的选择。不过,后边我们会再次考虑到微积分。

从上边的这个表和图,我们注意到,概率在1/N连续增加到一个最大值,然后回落到1/N。图表上的最大值是怎么回事,我们能够弄清吗?找到最大值的一个方法就是去思考P(k)函数值的连续序列。k如果是我们想要的那一个,那么对于这个k来说,下一个的概率比前一个的概率更小——这个k就是这样的第一个。即是说,P(k +1)- P(k)<0。这个过程类似于微积分中使用的一阶导数检定法。

所以,

如果我们累积求和,那么不同的k值计算可得

为负值的第一个和将会给予我们求解的答案。下表举例说明了N=15的这一求解过程。

在离散数学的优化问题中,求解的算法常常产生出那个解决方法。但是,它不是某一个具体而清晰的解决方法。通常,我们对这种“解决方法”不满意。不过,写一个程序十分简单。当

的时候,它会运算到程序结束。所以对于任意给定的N,我们也能够容易地找到清晰具体的解决方法。下边就是这样一个简短的计算程序,可以用它来找到那个k:

程序名:寻找最佳配偶

:Disp “INPUT N”

:Input N

:0.S

:N-1.X

:While S<1

:1/X+S.S

:X-1.X

:End

:Disp X+1

:X+1.K

:(K/N)(sum(seq(1/T,T,K,N-1)) ).P

:Disp P

微积分求解

我 们不能直接用微积分解决这个问题,不过我们可以用微积分得到一个近似值。对于微积分,离散数学模型的运用原则为人熟知。这也包括近似连续模型方法的使用。 在微分方程中,也可以利用欧拉方法近似求解。以及,莱曼求和或者定积分逼近的梯形原则也涉及到这个问题。对于这个问题我们的思路是反向的,我们有一个离散 函数但我们用连续函数来求它的近似值。对于连续逼近来说,微积分是一种更强有力的手段。

设这个概率的函数为

在x=k到x=N的取值范围中,曲线y=1/x下对应一个面积。对于这个面积,微积分可以被视为是近似求和。

同样,对于

的微积分被视为是一种近似值。所以,我们可以用函数

来求函数P(x)的近似值。从上图可以看到,当N和k很小时,这个近似值很差。不过,随着N值的增大,k也增大。一旦取值超过N=15和k=5,我们看到曲线下矩形面积代表的就不是那么“差”的值。现在,我们令变量为比率k/N=x,那么我们就得到近似的连续函数

于是,我们可以借助微积分进行计算。

我们有

所以

我们发现

常数e在问题中露面了,这叫人很兴奋。这即是说,我们应该放过位置k/N=1/e≈0.368,然后才开始选择我们的配偶。我们也应该核查一下从那个程序计算所得的值,看看这是否是一个合理的近似值。

成功的概率是多少?它减小到1/N了吗?现在,我们可以用下边这个函数计算成功率的近似值:

结论

随着k增大到大约0.368,成功率也逐渐向下平落。利用这一计算过程,我们发现,我们可能成功地从数量为N的一群人中选出最好的那个。方法是,放过前边供以选择的大约37%的选项,然后在37%的几率中选择比之前所看到的都好的第一个。无论N的值多大,这都是真的!这是一个引人注目的高概率。通过这种办法,你能够以几乎37%的几率从5000个人中选出最好的那一个。即,对最先的1839个人不做选择,然后选择比那1839个都更好的那第一个。

对于学生而言,这里可以得到一个建议。与你中学的心上人结婚不是一个特别好的策略。不要太过认真,不要太匆忙。走出去,与大量的人的接触。去看看你喜欢谁,谁喜欢你。然后,做出你的选择。

附:当N大于15时,这个近似值相当精确。所以,至少约会过15个对象,你的择偶决定才会更靠谱一些。一 般而言,我们一生择偶对象的量不会很大。所以,刚开始的几个情侣可以彻底放开心地相处,因为那才是最好的爱情练习。然后,情侣数、阅历以及年龄到了一定程 度后,碰到一个比之前都要好的人就赶紧婚了吧。意中人可能多如金黄的麦田,但你只能摘其中一支麦穗。(另:否决项当译为放弃项)

参考文献:

Shultz, Harris和Bill Leonard〈文秘雇佣策略〉,《本科数学及其应用杂志》,1987年冬季卷8第4号。

Paulos, John Allen《数学盲》,纽约,纽约Hill and Wang出版社1988年。

作者:

Dan Teague   teague@ncssm.edu

转载于:https://www.cnblogs.com/zcwvictor-2012/p/3300054.html

怎样寻找最佳爱人:一个微积分求解的离散数学问题相关推荐

  1. 施密特正交化_机器学习 线性代数基础 | 3.3施密特正交化:寻找最佳投影基

    ▼ 更多精彩推荐,请关注我们 ▼3.3  施密特正交化:寻找最佳投影基 在本章的前面两个小节里,我们通过向指定子空间进行投影,探索到了如何寻找"最近距离"的有效途径,通过理论分析和 ...

  2. 利用NAS寻找最佳GAN:AutoGAN架构搜索方案专为GAN打造

    点击我爱计算机视觉标星,更快获取CVML新技术 本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载. 选自Towardsdatascience 作者:George Se ...

  3. 17.立体匹配——介绍,匹配,寻找最佳匹配 Matlab实战_1

    目录 介绍 匹配 寻找最佳匹配 实战 介绍 欢迎回到计算机视觉.今天我们要讲的是立体视觉匹配(stereo correspondence).到目前为止,我们已经定义了对极几何(epipolar geo ...

  4. 寻找最佳特征维度_寻找5种最佳设计模式书

    寻找最佳特征维度 Sometimes back I wrote an article for Best Core Java Books for beginners. Today I am sharin ...

  5. 【寻找最佳小程序】04期 :探访“小打卡”产品打磨细节及线下场景真实应用

    专栏记者:陈秋歌 如果您希望将本人或团队开发的小程序介绍给更多人了解.使用,十分欢迎联系本专栏记者陈秋歌(chenqg#csdn.net.微信:Rachel_qg),获得CSDN的采访报道及宣传推广机 ...

  6. 【寻找最佳小程序】04期 :探访“小打卡”产品打磨细节及线下场景真实应用...

    专栏记者:陈秋歌 如果您希望将本人或团队开发的小程序介绍给更多人了解.使用,十分欢迎联系本专栏记者陈秋歌(chenqg#csdn.net.微信:Rachel_qg),获得CSDN的采访报道及宣传推广机 ...

  7. 网格搜索算法可以用于在给定的超参数空间中寻找最佳的超参数组合。具体步骤如下:

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.网格搜索算法是什么? 二.使用步骤 1.确定超参数空间: 2.生成网格: 3.初始化验证方案: 4.训练和评估模型: 5 ...

  8. 【寻找最佳小程序】10期:小小房贷计算器——快捷、易用,小白购房必备

    为了更好地展示这些优秀的小程序,展现背后的开发者/团队风彩,CSDN特别推出了[寻找最佳小程序]系列访谈栏目,以期分享每款优秀小程序背后的产品创意与研发故事,探究创新性应用场景,发现不一样的创业机会. ...

  9. 【寻找最佳小程序】05期:腾讯视频——与App优势互补,探索视频新玩法

    专栏记者:陈秋歌 如果您希望将本人或团队开发的小程序介绍给更多人了解.使用,十分欢迎联系本专栏记者陈秋歌(chenqg#csdn.net.微信:Rachel_qg),获得CSDN的采访报道及宣传推广机 ...

最新文章

  1. 基于SSM+Layui实现医院预约挂号系统
  2. 皮一皮:爱迪生看了流泪,特斯拉看了沉默...
  3. (运维)VMware-vCenter-Server-update Management
  4. 前端技术-调试工具(上)
  5. leetcode 112路径总和
  6. 时间函数java_Java时间函数整理
  7. 怎样用 Python 控制图片人物动起来?一文就能 Get!
  8. 配置oracle方言类,Oracle环境下的Hibernate方言配置
  9. Atitit Atitit.软件兼容性原理----------API兼容 Qa7
  10. 【Linux】一步一步学Linux——iconv命令(60)
  11. 机器人操作系统ROS(9)Gazebo物理仿真(摄像头仿真)
  12. 中国制造2025关于智能驾驶汽车的相应介绍
  13. java调用腾讯云的乐固加固给apk进行加固处理。
  14. html td 的横向与纵向合并
  15. echarts正负极柱状图
  16. MySQL(查询语句,关键字)
  17. C语言实现简单的图书馆小程序(练习指针和结构体的基本使用)
  18. director入门
  19. 7.2 一次产品异常复位引发的质量提升经历
  20. 关于bat中set /p=前面加空格的bug修复方法

热门文章

  1. 全网最强在线解析源码
  2. 2013.03.20清晨北京的雪
  3. 为超融合架构选择合适的数据中心冷却系统
  4. 【Git学习】使用git reflog 命令来查看历史提交记录并使用提交记录恢复已经被删除掉的分支
  5. 关于TCP_CORK的一个细节
  6. java如何模拟抢单_基于jsp的抢单兼职-JavaEE实现抢单兼职 - java项目源码
  7. visio导出pdf文件不完整
  8. 这个世界没好过-虚拟采访鲁迅先生
  9. 拜托,有一个python画的生日蛋糕超酷的好吧~
  10. Python基础练习题:杂乱无章的页面列表【难度:1级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶