选择爱人的数学方法(经典秘书问题)

Kepler(开普勒,1571年12月27日-1630年11月15日),德国天文学家、数学家,十七世纪科学革命的关键人物。

这样一位伟大的人物在1611年遇到一个问题,他的夫人患匈牙利斑疹伤寒(Hungarian spotted
feve)过世,为了照顾孩子、打理家务,Kepler 需要重新寻找一位夫人。身为严谨的科学家,他认真记录下了“面试”11位夫人“候选人”的过程。

第一位,“口臭”,Kepler写到。

第二位,“养尊处优”。

第三位:“已经许配给一个有私生子的人,太复杂了”。

第四位:“身材高挑,气质不凡”。

不过,Kepler 想看看第五个,因为有人告诉他,第五位女孩儿集“谦虚、节俭、勤奋...”等优点于一身。于是,Kepler
犹豫了,而且犹豫了很长时间,以至于第四位和第五位女孩儿都不耐烦地离开了。

第六位是一个“衣着华丽的大小姐”,这把Kepler吓了一跳,他有点担心高昂的婚礼费用。

第七位女孩儿很迷人,Kepler 也很喜欢她。由于没看完这11位“候选人”,Kepler
心有不甘。他让这位女孩儿等他看完“候选人”再做决定。不愿意等人的第七位女孩儿也离开了。

第八位女孩儿,Kepler 没怎么关心。

第九位女孩儿“体弱多病”;第十位女孩儿有着“对于没什么要求的普通人”也没办法接受的体型;最后一位女孩儿,还是个小姑娘,也不适合。

11位“候选人”都看完了,一个也没有约成。Kepler 开始想,哪里出错了?

Kepler
所需要的,是优化策略,一种不能保证成功但能将失望降至最低的方法。数学家们觉得,我们能算出这样的公式来。                                    
本文地址

如果你有自己的候选列表,爱人也好,约会也好,工作也好,这方法都管用。规则很简单:只要你的选择有限,你可以做一个列表,然后挨个来。再一次声明,不总能成功。但对数学家来说,足够了。

这个问题甚至有个名字:(开普勒的)婚姻问题。后来,又被衍生为经典秘书问题(Classic
Secretary
Problem)
。比如,你有20个候选人要逐一面试,在面试之后,你必须决定要不要。要,选择结束;不要,那就喊下一位。不能回头。一旦决定聘用,问题结束。

根据马丁·加德纳在1960年的说法,最好的办法是,先面试前36.8%的候选人,但不录用他们。在此之后,一旦遇到比前面这36.8%里最好的还好的,立马录用。

为什么是36.8%呢?这个答案牵扯到e,1/e=0.368(关于这个概率的证明可以参考 维基百科)。很显然,这个公式经过了无数次的验证。尽管它不能保证结果最优,但你有36.8%的机会。对于11个“候选人”来说已经足够了。

如果,当时Kepler 用了这个公式,会怎样呢?11的36.8%的是4,所以他要pass掉前四位候选人,从第五位开始,只要比前四位好,Kepler
就应该求婚。也就是,经过一番折腾后,Kepler 会和第五位女孩儿结婚。(你还见记得第五位是谁吗?)

如果Kepler 当时知道这个公式(这也是当今数学上最优停止的一个例子),他便能省去后后面一批人的约会了。

另外还可以参考: 秘?书?问?题?最?优?解  ;善科网  ;经典问题“秘书问题”
深入研究

【版权声明】转载请注明出处:http://www.cnblogs.com/TenosDoIt/p/3747946.html

时间: 2024-11-24 14:50:55

选择爱人的数学方法(经典秘书问题)的相关文章

#8 Python数学方法

前言 前几节了解了Python的不同数据类型,有小伙伴会问,不同的数据类型之间是否可以相互转换?肯定是可以的,本篇博文主要记录数字类型的转换,其他类型的相互转换会在下几节记录,Here we go! 一.Python数字类型转换 通过前几节,我们知道Python数字的数据类型有:整型.长整型.浮点型.和复数,它们之间是如何转换的呢?亦或者它们是如何转换为其他数据类型呢?先来看所有的方法: int(x [,base ]) # 将 x 转换为一个整数 float(x ) # 将 x 转换到一个浮点数

设置警告框样式为带有两个文本输入的警告框,用于收集用户收货地址和联系电话。并选择合适的代理方法,当警告框上的两输入框有一个为空时限制“购买”按钮点击。

收集购物信息  iOS项目 倒计时:588 步骤 /.panel-heading 项目需求 设置警告框样式为带有两个文本输入的警告框,用于收集用户收货地址和联系电话.并选择合适的代理方法,当警告框上的两输入框有一个为空时限制“购买”按钮点击. #import "TableViewController.h" @interface TableViewController ()<UIAlertViewDelegate> @property (nonatomic, strong)

STL中慎重选择删除元素的方法

 一.要删除容器中有特定值的所有对象 1.如果容器是vector.string或deque,则使用erase-remove习惯用法.例如: vector<int> c; c.erase(remove(c.begin(),c.end(),1963),c.end());//删除值是1963的元素 下面讲一下算法remove: template<classForwardIterator,class T> ForwardIteratorremove(ForwardIterator fi

图像处理数学方法

图像处理数学方法 在图像处理的发展过程中,数学始终起着举足轻重的作用,并渗透在图像处理的所有分支之中. 到上世纪六七十年代为止,以Fourier分析为代表的线性处理方法占据了几乎整 个数字图像处理领域.在此期间,借助于随机过程理论,人们建立了图像模型通过概率论以及在此基础上建立的信息论建立了图像编码的框架:线性滤波(维纳滤 波.卡尔曼滤波)方法为低层图像处理提供了有力的理论支持:而FFT则被广泛使用在图像处理的几乎所有分支中.这些数学工具极大地促进了图像处理的发展和 应用. 自上世纪八十年代开始

Javascript中,数学方法可以分成以下几类: constans(常数)、power functions(乘方函数)、trigonometic functions(三角函数)、rounding functions(舍入函数)、random numbers(随机数字)

在Javascript中,数学方法可以分成以下几类: constans(常数).power functions(乘方函数).trigonometic functions(三角函数).rounding functions(舍入函数).random numbers(随机数字) 常数和乘方函数 Math.E 自然对数的底(为常数) 2.718 Math.LN10 10的自然对数 2.302 Math.LN2 2的自然对数 0.693 Math.PI 圆周率 3.1415 Math.SQRT1_2 1/

数学方法

数学方法即用数学语言表述事物的状态.关系和过程,并加以推导.演算和分析,以形成对问题的解释.判断和预言的方法.所谓方法,是指人们为了达到某种目的而采取的手段.途径和行为方式中所包含的可操作的规则或模式.人们通过长期的实践,发现了许多运用数学思想的手段.门路或程序.同一手段.门路或程序被重复运用了多次,并且都达到了预期的目的,就成为数学方法.数学方法是以数学为工具进行科学研究的方法,即用数学语言表达事物的状态.关系和过程,经过推导.运算与分析,以形成解释.判断和预言的方法. 数学方法具有以下三个基

zznu 1255 数字统计(数位DP, 数学方法)

最近在学数位DP, 感觉还是满有收获的! 做了几个题之后想起来自己OJ上曾经做的一道题,以前是用数学方法写的,现在改用数位DP来写了一遍. 题目: 1255: 数字统计 时间限制: 1 Sec  内存限制: 128 MB提交: 31  解决: 4[提交][状态] 题目描述 一本书的页码从自然数1 开始顺序编码直到自然数n.书的页码按照通常的习惯编排, 每个页码都不含多余的前导数字0.例如,第6 页用数字6 表示,而不是06 或006 等.数 字计数问题要求对给定书的总页码n,计算出书的全部页码中

不同page页面选择不同页面模板的方法

仿制一个企业站的时候发现该站用了很多page页面,而且个别页面的样式不相同,同时区别于post文章页面,其实不同之处就在于每个页面的xhtml+css的不同,关键是page模板选择的问题,恒宁总结了以下两种方法. 第一种:复制.粘贴主题根目录下的page.php,并重命名为page-slug/id.php.slug为page页面的别名,注意:别名为英文或拼音.id为page页面的id号.例如:page-zaixianlianxi.php或page-1.php.这种命名的原因,是告诉wordpre

常见的数学方法

1.怎么让数字保留n位小数? 数字.toFixed(n); var num = 123.567;   num.toFixed(2); 2.将字符串转化为数字的方法有哪些? 数学方法有哪些?(Math) var str = '123.45'; parseInt(str); parseFloat(str); Number(str); 3. 随机数:Math.random()  0-1之间:求10到20之间的随机数随机数即:10+Math.random()*20 4.  向上取整: Math.ceil