中科院物理所
2017-12-24 10:50
本文来自公众号:超级数学建模
微信号:supermodeling
转眼间,2017年又到了尾声了,不知道各位年初定下的“年终目标”又完成了多少呢?(别想着打听超模君怎么样,年终目标?不存在的。)
既然到了年终,商家们自然要搞各种促销活动来冲一冲年终业绩,好让自己的腰包鼓一点——除了常规的价格优惠以外,抽奖活动也是屡试不爽的一种促销手段。
这些抽奖活动的头等奖奖品通常非常丰厚,曾经让年轻的超模君产生一个疑问:提供这么丰厚的奖品,商家不会亏本吗?
后来超模君才知道,年轻的自己还是太善良了——商家怎么会做亏本的买卖呢?这些抽奖活动,都是算过数学期望之后再来设计举行的。
说起数学期望,想必模友们都会联想到一门学科——概率论,那超模君就来讲讲那些有关概率论诞生的故事吧!
概率论的起源,确实是跟一项相当看运气的“娱乐活动”——赌博有关。
虽然中国有“十赌九输”的诫语,但是赌桌上那种动动手指就可以下半辈子衣食无忧的诱惑,还是让很多人趋之若鹜。而这些人把赌桌上的输赢都归结于运气使然(用中国话来讲就是“手气”),可总有人会琢磨怎样才能赢得更多,赢得更稳,别上一刻还是开着法拉利来,下一刻就输得只剩一条内内,灰溜溜地回家。
而较早开始研究这个问题的人,是意大利学者卡尔达诺。(没错,就是那个沉迷占星术算出自己死期,结果到了时间依旧活蹦乱跳只好自杀来维护自己声誉的猛人)
卡尔达诺:自己做的预言,打死都要应验
这位猛人不单单是位学者,还是个不折不扣的“赌鬼”。他利用自己的数学知识对当时的赌博项目——纸牌、西洋双陆棋、骰子、距骨等做了分析,在赌桌上要风得风、要雨得雨,最后将这些分析结果和实战经验写成了一本书:《论赌博游戏》。
在这本书里面,卡尔达诺给出了掷两颗或者多颗骰子时,在一切可能方法中有多少方法得到某一总点数等赌博技巧。
在卡尔达诺之后,继续“从事”赌博研究的是两位“大牛”——法国的帕斯卡和费马。
帕斯卡:别误会,我不赌
费马:我也不赌……还有我为什么又出场了?!
1653年的夏天,帕斯卡前往浦埃托镇度假。在路上,他遇到了当时的一位“赌坛老手”——梅尔。两人为了消除旅途的寂寞,梅尔向帕斯卡提出了一个“分赌注”的问题。
一次,梅尔与赌友赌掷骰子,每人压了32个金币,并约定:如果梅尔先掷出3个6点,或者赌友先掷出3个4点,就赢得此次赌局。当梅尔掷出两个6点,赌友掷出1个4点时,梅尔接到通知,要立即去陪同法国国王接见外宾,赌局无法完成,但是两人又不愿意各自收回赌注,只好约定按照已有的成绩来分赌注。可是,赌注应该怎么分呢?
这个问题把帕斯卡当场难住了,他并没有解出来。到了1954年的时候,帕斯卡和费马通过书信来往,简化并解决了这个“分赌注”的问题——简化后的问题如下:
甲乙两人同掷一枚硬币,规定:正面朝上,甲得一分;反面朝上,乙得一分,先积满3分者赢得赌局。假定在甲积两分,乙积一分时,赌局因某种原因中止,问应该怎么分赌注才公平?
帕斯卡提出的解决方案是:再掷一次的话,若正面朝上,则甲获得全部赌注;若反面朝上,则两人平分赌注。因为这两种情况出现的概率是等可能的,所以甲应该获得1×1/2 1/2×1/2=3/4的赌注,乙则应该获得0×1/2 1/2×1/2=1/4的赌注。
而费马的方法更为详尽,他设想完成赌局最多还需要两局,这两局的可能情况如下:
按照表中罗列出的情况,甲应该拿走赌注的3/4,而乙应该拿走赌注的1/4——这与帕斯卡的结果一致。两个人在完整解决“分赌注”问题之后,将这个问题的解法向更一般的情况推广,从而建立了一个概率论的基本概念——数学期望。
数学期望(mean)(或均值,亦简称期望)是试验中每次可能结果的概率乘以其结果的总和,它反映随机变量平均取值的大小。
1655年,荷兰数学家惠更斯恰好造访巴黎,当他了解到帕斯卡和费马的工作详情之后,也饶有兴致地加入到了两人的讨论中。1657年,惠更斯将他和帕、费两人的讨论情况整理成了《关于赌博中的推断》一书,该书成为公认的概率论奠基之作。
惠更斯:整理一下讨论内容就能够成为奠基人,这工作还真简单
在帕斯卡、费马和惠更斯之后,将概率论再推进一大步的人是瑞士数学家雅各布·贝努利。他先是证明了当初由卡尔达诺所提出的一个猜想——“大数定律”猜想,即用经过大量实验后稳定的频率来作为某事件发生概率P的近似值,然后又提出和研究了独立重复实验概型——这种概型在许多概率论专著中依旧被称作“贝努利概型”。
1705年,雅各布去世,8年后,他生前所著的《猜度术》才被出版,成为继惠更斯《关于赌博的推断》之后,概率论领域的又一部奠基巨著。
雅各布:死了才出版我的书,感觉心里有点苦……
截至雅各布为止,概率论的早期建设已接近完成,人们已经意识到,曾经让他们觉得虚无缥缈的“运气”,原来还是有规律可寻的。
时间进入十八世纪,概率论得到了快速的发展。概率论工作者开始不再孤立的、静止地研究事件发生的概率,而是把随机现象看做一种特殊的变量——随机变量。
而率先对这种特殊变量进行研究的,是法国数学家棣莫佛。
棣莫佛:没想到我还有出场的机会……
棣莫佛研究了随机变量服从正态分布的情形,发现了正态概率的分布曲线。这个发现具有重大的意义——因为在众多的随机现象中,服从正态分布的随机现象是占大多数的。随后他还提出了概率论中一条重要的定理:中心极限定理。
中心极限定理(central limit theorem)是概率论中讨论随机变量序列部分和分布渐近于正态分布的一类定理。这组定理是数理统计学和误差分析的理论基础,指出了大量随机变量累积分布函数逐点收敛到正态分布的积累分布函数的条件。
而在棣莫佛研究正态分布的同时,另一位法国数学家蒲丰则对概率论的统计定义和几何定义做出了很大的贡献。
不过这位先生做研究的方法也实在特别。为了验证频率的稳定性,他亲自将一枚匀质硬币投掷了4040次,得到了“正面朝上”的频率为0.5069,与理论数据0.5非常接近,从而认为频率的稳定性成立。
看来这位先生的“麒麟臂”也是不同凡响啊……
蒲丰:这样就觉得很厉害了?年轻人你还是太天真了……
更要命的是,蒲丰不单单自己一个人抛硬币,他还让别人跟他一起来抛针。在1777年出版的《或然算术实验》中,蒲丰提出了用“抛小针”的方法来计算π值的“蒲丰问题”。
“蒲丰问题”的内容是:设在平面上有一组平行线,线间的距离均为D。将一根长度为L(L小于D)的小针随机投掷到平面上,则这根小针与一条直线相交的概率为:
2L/(πD)。
由于频率的稳定性已经被验证,所以如果做大量的抛针实验,就可以得出一个频率,从而计算π的值。于是,一堆数学家跟着蒲丰“疯”了起来:
1850年,瑞士数学家沃尔夫抛了5000次针,得到π≈3.1596;
1864年,英国人福克抛了1030次针,得到π≈3.1419;
1901年,意大利人拉泽里尼抛了3400次针,得到π≈3.1415929。
真的是丧心病狂……
后来人们根据这种几何概型的思想,创造出了至今依旧应用十分广泛的近似算法——蒙特卡诺法。
在陪蒲丰“疯”完以后,概率论进入了十九世纪的“分析概率”时期。概率论的研究工具也转到了数学分析方法,如特征函数、微分方程和差分方程等。
拉普拉斯是这个时代的开拓者,他总结了之前古典概率论的内容,加以发展之后,于1812年出版了他的著作——《分析的概率理论》,将概率论的研究方法拓展到了数学分析领域。
在他之后,法国数学家泊松改进了概率论的研究方法,尤其是用于统计方面的方法,建立了一种描述随机现象的概率分布——泊松分布。除此之外,泊松还推广了“大数定律”,导出了在概率论和数理方程中有重要运用的泊松积分。
泊松分布适合于描述单位时间(或空间)内随机事件发生的次数。如某一服务设施在一定时间内到达的人数,电话交换机接到呼叫的次数,汽车站台的候客人数,机器出现的故障数,自然灾害发生的次数,一块产品上的缺陷数,显微镜下单位分区内的细菌分布数等等。
而在同时期的俄国,也有一位数学家为概率论做出了杰出的贡献——他是切雪比夫。
切雪比夫:首次登场,有点紧张
他在概率论的两大主题——大数定律和中心极限定理上做出了重要的贡献。
1845年,切雪比夫在他硕士论文中,利用ln(x 1)的麦劳克林展开式,对雅各布的大数定律作了精细分析与严格证明。
1846年,他又在格列尔的杂志上发表了“概率论中基本定理的初步证明”一文,文中继而给出了泊松形式的大数定律的证明。
1866年,切比雪夫发表了“论平均数”,进一步讨论了作为大数定律极限值的平均数问题。
1887年,他发表了更为重要的“关于概率的两个定理”,开始对随机变量和收敛到正态分布的条件,即中心极限定理进行讨论。
切雪比夫的研究,让俄国彻底站在了概率论的研究前沿。而在19世纪之后,概率论终于走到了公理化的阶段。
进入二十世纪,俄国数学家柯尔莫哥洛夫在他《概率论的基本概念》一书中,以勒贝格测度为理论基础,抓住概率的有界性、非负性、可加性三条基本性质,给出了概率的严格定义。这个定义让概率论真正拥有了严密的逻辑基础,让后续的研究走得更加稳当和顺畅。
时至今日,概率论已经在很多日常领域得到了应用,小到商场抽奖,大到保险投资,都离不开概率论的指导。这门起源于赌博的学科,它的诞生似乎在告诉我们:
再需要运气的事情,其中也有规律可寻。
可是,它也同样没有改变一个事实:
来源:超级数学建模
编辑:雾里熊
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
延伸阅读:
蒲丰问题一般指蒲丰投针问题
投针步骤
?编辑
法国数学家布丰(1707-1788)最早设计了投针试验。
这一方法的步骤是:
1) 取一张白纸,在上面画上许多条间距为a的平行线。
2) 取一根长度为l(l≤a) 的针,随机地向画有平行直线的纸上掷n次,观察针与直线相交的次数,记为m。
3)计算针与直线相交的概率.
18世纪,法国数学家布丰和勒可莱尔提出的“投针问题”,记载于布丰1777年出版的著作中:“在平面上画有一组间距为a的平行线,将一根长度为l(l≤a)的针任意掷在这个平面上,求此针与平行线中任一条相交的概率。”
布丰本人证明了,这个概率是:
2l/πa(其中π为圆周率)
由于它与π有关,于是人们想到利用投针试验来估计圆周率的值。
布丰惊奇地发现:有利的扔出与不利的扔出两者次数的比,是一个包含π的表示式.如果针的长度等于a/2,那么有利扔出的概率为1/π.扔的次数越多,由此能求出越为精确的π的值。
实验数据
下面是利用这个公式,用概率的方法得到圆周率的近似值的一些资料。
试验者
时间
投掷次数
相交次数
圆周率估计值
Wolf
1850年
5000
2532
3.1596
Smith
1855年
3204
1218.5
3.1554
C.De Morgan
1860年
600
382.5
3.137
Fox
1884年
1030
489
3.1595
Lazzerini
1901年
3408
1808
3.1415929
Reina
1925年
2520
859
3.1795
公元1901年,意大利数学家拉兹瑞尼作了3408次投针,给出π的值为3.1415929——准确到小数后6位。不过,不管拉兹瑞尼是否实际上投过针,他的实验还是受到了美国犹他州奥格登的国立韦伯大学的L·巴杰的质疑.通过几何、微积分、概率等广泛的范围和渠道发现π,这是着实令人惊讶的!
布丰投针实验是第一个用几何形式表达概率问题的例子,他首次使用随机实验处理确定性数学问题,为概率论的发展起到一定的推动作用。[1]
证明
证明一:找一根铁丝弯成一个圆圈,使其直径恰恰等于平行线间的距离d。可以想象得到,对于这样的圆圈来说,不管怎么扔下,都将和平行线有两个交点。因此,如果圆圈扔下的次数为n次,那么相交的交点总数必为2n。现在设想把圆圈拉直,变成一条长为πd的铁丝。显然,这样的铁丝扔下时与平行线相交的情形要比圆圈复杂些,可能有4个交点,3个交点,2个交点,1个交点,甚至于都不相交。由于圆圈和直线的长度同为πd,根据机会均等的原理,当它们投掷次数较多,且相等时,两者与平行线组交点的总数期望也是一样的。这就是说,当长为πd的铁丝扔下n次时,与平行线相交的交点总数应大致为2n。
现在转而讨论铁丝长为l的情形。当投掷次数n增大的时候,这种铁丝跟平行线相交的最大的交点总数m应当与长度l成正比,因而有:m=kl,式中k是比例系数。
为了求出k来,注意到l=πd时的特殊情形,有m=2n。于是求得 。
代入前式就有: ,将此结论推广到l=a/2,那么最多也只有一个交点,m与n的比值是针与直线相交的概率。但此证明较不严谨,例如圆和直线期望相等,铁丝与平行线的交点成正比。接下来用概率论和微积分提供严谨的证明。
蒙特卡罗方法
?编辑
像投针实验一样,用通过概率实验所求的概率来估计我们感兴趣的一个量,这样的方法称为蒙特卡罗方法(Monte Carlo method)。当由于这类模型含有不确定的随机因素,分析起来通常比确定性的模型困难.有的模型难以作定量分析,得不到解析的结果,或者是虽有解析结果,但计算代价太大以至不能使用.在这种情况下,可以考虑采用 Monte Carlo 方法,蒙特卡罗方法是在第二次世界大战期间随着计算机的诞生而兴起和发展起来的。这种方法在应用物理、原子能、固体物理、化学、生态学、社会学以及经济行为等领域中得到广泛利用。
利用钝角三角形的边长计算圆周率
此外,随便说出3个正数,以这3个正数为边长可以围成一个钝角三角形的概率P也与π有关,这个概率为 (π-2)/4,证明如下:
设这三个正数为x,y,z,不妨设x≤y≤z,对于每一个确定的z,则必须满足x y>z,x^2 y^2﹤z^2,容易证明这两个式子即为以这3个正数为边长可以围成一个钝角三角形的充要条件,用线性规划可知满足题设的可行域为直线x y=z与圆x^2 y^2=z^2;围成的弓形,总的可行域为一个边长为z的正方形,则可以围成一个钝角三角形的概率P=S弓形/S正方形=(πz^2/4-z^2/2)/z^2=(π-2)/4.因为对于每一个z,这个概率都为(π-2)/4,因此对于任意的正数x,y,z,有P=(π-2)/4,命题得证。
为了估算π的值,我们需要通过实验来估计它的概率,这一过程可交由计算机编程来实现,事实上x y>z,x^2 y^2﹤z^2等价于(x y-z)(x^2 y^2-z^2)﹤0,因此只需检验这一个式子是否成立即可。若进行了m次随机试验,有n次满足该式,当m足够大时,n/m趋近于(π-2)/4,令n/m=(π-2)/4,解得π=4n/m 2,即可估计出π值。
值得注意的是这里采用的方法:设计一个适当的试验,它的概率与我们感兴趣的一个量(如π)有关,然后利用试验结果来估计这个量,随着计算机等现代技术的发展,这一方法已经发展为具有广泛应用性的蒙特卡罗方法。
计算机模拟
Monte Carlo方法是计算机模拟的基础,它的名字来源于世界著名的赌城——摩纳哥的蒙特卡洛, 其历史起源于 1777 年法国科学家蒲丰提出的一种计算圆周π 的方法——随机投针法,即著名的蒲丰投针问题。
Monte Carlo方法的基本思想是首先建立一个概率模型,使所求问题的解正好是该模型的参数或其他有关的特征量. 然后通过模拟一统计试验, 即多次随机抽样试验 (确定 m和 n) ,统计出某事件发生的百分比。只要试验次数很大,该百分比便近似于事件发生的概率.这实际上就是概率的统计定义。利用建立的概率模型,求出要估计的参数。蒙特卡洛方法属于试验数学的一个分支。
MATLAB语言编程实现:
l=1;
n=1000;
d=2;
m=0;
for k=l:n
x=unifrnd(0,d/2);
p=unifrnd(0,pi);
if x<0.5*sin(p)
m=m 1
else
end
end
p=m/n
pi_m=1/p
运行,即得结果。
c 语言编程实现:
#include<conio.h>
#include<stdlib.h>
#include<time.h>
#include<iostream>
using namespace std;
int main()
{
longi,in,N=1000000;
doublex,y,pi;
srand(time(NULL));
for(i=0,in=0;i<N;i )
{
x=2.0*rand()/RAND_MAX-1;
y=2.0*rand()/RAND_MAX-1;
if((x*x y*y)<=1)
in ;
}
pi=4.0*in/N;
cout<<pi<<endl;
getch();
return 1;
}