注册地址 登录
数学建模社区-数学中国 返回首页

伍上的个人空间 http://www.madio.net/?343782 [收藏] [复制] [分享] [RSS]

日志

生日概率问题

已有 2101 次阅读2011-8-4 00:30 | 一个人, 生日

假定一个人出生在一年365 天中任一天是等可能的,且任意两个人的生日是相互
独立的。在此基础上我们考虑下面的问题。
问题1:有n 个人,至少有2 个人同一天生日的概率有多大?(n≤365)
直接考虑n 个人至少有两个人生日相同的事件A 很复杂,那么通过考虑对立事件
A..
,也即没有人生日相同的事件的概率
P(A
..
)=........................…....................
........
那么至少有2 个人生日相同的概率
P(A)=1‐P(A
..
)
=1 .. ........................…....................
........
=1—A......
..
........
问题2:有n 个人,至少有3 个人同一天生日的概率有多大?(n≤365)
此时即使考虑其对立事件,也即没有3 个人同一天生日的事件A
..
也很复杂,因为
A..
包括了没有人同一天生日的事件A1 和恰有两个人同一天生日的事件A2,故
A..
=A1+A2 且 A1..A2=Φ
但是A2 包括了可能只有一对两个人同一天生日,也包括了可能有2,3,4,…
对两个人同一天生日的可能。事件A2 的概率并不容易计算。从而有n 个人,
至少有3 个人同一天生日的事件A 的概率不容易计算。更一般地考虑下述问题:
问题3:有n 个人,至少有m 个人同一天生日的概率有多大?(m.. n,n≤365)
由问题2 的分析可知,要想通过数学计算得到精确的理论值值,是很复杂的。但
是对于独立重复事件,事件发生频率与概率可以任意接近,只要实验的次数充分
大。但是我们不可能也没有必要抽样调查,因为抽样调查需要对不同的群体进行
大量的抽样调查才能得到频率的近似值,费时费力。由此我们想到了通过计算机
的随机模拟方法获得事件发生的概率的近似值。也就是通过蒙特卡罗法得到概率
的近似值。
下面说明可以通过蒙特卡罗法给出事件的概率的近似值的理论依据。
Chebyshev 大数定律:设ξ1,ξ2,…,ξn,…是由两两互不相关的随机变量所构
成的序列,每一随机变量都有有限的方差,并且他们有公共上界
Dξ1.. ..,Dξ2.. .., … ,Dξn.. ..,…
则对任意的ε .. 0,皆有
lim...... P..| ..
..
Σ ξ..
..
...... .. ..
..
Σ.. E
...... ξ..| .. ε..=1
记有n 个人,至少有m 个人同一天生日的事件为A,且事件A 发生的概率为P,
由示性函数:
IA=..
1, 如果A 发生
0,如果A 不发生
令ξi=IA 故ξi=0 或1。(i=1,2,3,…)
ξi 1 0
P(ξi) P 1‐P
由分布列可得,Eξi=1.. P+0.. ..1 .. P.. .. P (i=1,2,3…)
Dξi=p.. ..1 .. P....+(1‐P).. ..0 .. P....=P(1‐P)
所以,Dξi.. ..
..
由计算机产生随机数的方式可知,{ξi}两两相互独立,且方差一致有界。故满足
Chebyshev 大数定律的条件,从而由计算机得到的频率与概率可以任意接近,只
要实验的次数足够大。但是我们不知道事件发生的概率的大小,无从给出置信区
间。
下面是实现代码(MATLAB 程序)
function[y]=birthn(n,m)
%n个人中有m个人生日相同的概率,调用下面的birthn1函数
y=0;
for i=1:100
y=y+birthn1(n,m);
end
y=y/100;
end
function[y]=birthn1(n,m)
%n个人中有m个人生日相同的概率
k=0;
for i=1:1000
A=floor(rand(1,n)*365+1);
B=tabulate(A);%统计矩阵A中各个数字出现的频率
x=max(B(:,2));
if x>=m
k=k+1;
end
end
y=k/1000;
end
对于问题“有n个人,至少有两个人同一天生日的概率”,我们可以得到具体的
理论值
用Pn=1 .. ........................…....................
........ 计算得到的理论值:(m=2)
n 5 10 20 23 30 40 60
Pn 0.027 0.117 0.411 0.507 0.706 0.891 0.994
与通过蒙特卡罗法,得到n=5,10,20,23,30,40,60;m=2 时相应的概率值:(m=2)
n 5 10 20 23 30 40 60
Pn 0.02702 0.11603 0.41064 0.50696 0.70721 0.89163 0.99453
由此可见,可以通过蒙特卡罗法得到有n 个人,至少有2 个人同一天生日的概率
的近似值。
下面分析问题:“有n 个人,至少有3 个人同一天生日的概率有多大?”难以计
算其理论值。但是可以通过蒙特卡罗法得到n 取不同的值时相应的概率值的近似
值。
通过蒙特卡罗法得到:n=20,30,40,50,60,70,80,90,100 时,m=3 时相应的概率值:
n 20 30 40 50 60 70 80 90 100
Pn 0.0080 0.0281 0.0674 0.1265 0.2059 0.3064 0.4164 0.5341 0.6461
固定m=3,随着n 的增大,相应的概率值是递增的,故相关系数大于零。下面进
一步研究m=3 时,随着n 的增大,相应的概率值Pn 是怎样变化的。
描绘出散点图:
线性拟合图:
拟合函数:y1= 0.0083 x ‐0.2355
20 30 40 50 60 70 80 90 100
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
data 1
20 30 40 50 60 70 80 90 100
-0.1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
data 1
linear
二次函数拟合图:
拟合函数:y2= 7.553e5 x2‐ 0.00080x‐0.0139
三次拟合函数图:
拟合函数:
y3=‐6.195e‐7x3+0.0001870x2‐0.006758x +0.07605
四次拟合函数图:
拟合函数:
y4=‐1.245e‐8x4+ 2.369e‐6x3‐6.148e‐5x2+0.001547x‐0.01553
用这4 个回归方程预测n=110,120,130,140,150,160 时相应的概率值
20 30 40 50 60 70 80 90 100
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
data 1
quadratic
20 30 40 50 60 70 80 90 100
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
data 1
cubic
20 30 40 50 60 70 80 90 100
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
data 1
4th degree
110 120 130 140 150 160
Pn 0.74498 0.82916 0.89121 0.9356 0.96392 0.9826
Y1 0.67375 0.75640 0.83905 0.92171 1.00436 1.08702
Y2 0.81221 0.97794 1.158786 1.35473 1.56578 1.79194
Y3 0.77132 0.88799 0.99746 1.09602 1.17994 1.2455
Y4 0.74080 0.79641 0.79487 0.71304 0.52478 0.200973
(注:Pn 是通过蒙特卡罗法得到的概率值)
由上面的列表可知:上述4 个多项式回归方程只能预测自变量取值于
[20‐δ..,100+δ..]的响应的概率值,其中δ..是某一个大于零的实数,(i=1,2,3,4)。对于
远离[20,100]的点,上述4 个多项式回归方程并不具有可靠性的预测。对于次数
大于4 的多项式回归方程,作同样的分析可得同样的结论。由此可知,不能用多
项式作回归方程预测n 取不同的值时相应的概率值。故对于问题“有n 个人,至
少有3 个人同一天生日的概率有多大?”很难用一个多项式作回归方程预测对于
不同的n,相应的概率值。
从而对于固定的m,(m=3,4,5…)问题:“有n 个人,至少有m 个人同一天生日
的概率有多大?(m.. n,n≤365)”是不能用一个多项式作回归方程预测对于不同
的n,m 相应的概率值。
下面分析对于固定的n,问题“有n 个人,至少有m 个人同一天生日的概率有
多大?(m.. n,n≤365)”。很明显对于固定的n,随着m 的增大,相应的概率值
减小。为了得到一个更加明确的关系,下面通过蒙特卡罗法得到n=100 时,
m=2,3,4,5,6,7 得到相应的概率值Pm
m 2 3 4 5 6 7 8
Pm 1 0.64516 0.06272 0.00348 0.00018 10‐5 0
描出散点图:
这些点用光滑曲线连接起来,图像y=a+b*ecx 的形式。用MATLAB 作拟合得:
y=226.904-225.884.. e.......................
下图是这个函数的拟合图
2 3 4 5 6 7 8
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
由此可见函数y=226.904-225.884.. e.......................近似一条直线,由点在函数两侧分布可
知,拟合的效果并不好。
用最小二乘法线性拟合得到的效果图:
拟合函数是:y= -0.155446428571428 x+1.02176357142857
由点在函数两侧的分布可知,拟合的效果并不理想。
用二次函数作拟合
拟合函数是:y= 0.05711x2-0.72656x+2.2211
2 3 4 5 6 7 8
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
data 1
data 2
2 3 4 5 6 7 8
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
data 1
linear
2 3 4 5 6 7 8
-0.2
0
0.2
0.4
0.6
0.8
1
1.2
data 1
quadratic
因为随着m 的增大,概率值是减小的,而拟合函数在[2,8]区间并不是单调递减
的,故拟合的效果并不理想。
用三次函数拟合:
拟合的函数是: y=-0.008124x3+0.1790x2-1.2790x +2.9523 。拟合函数
y=-0.008124x3+0.1790x2-1.2790x +2.9523 的导数的图像是
由此可见拟合函数y=-0.008124x3+0.1790x2-1.2790x +2.9523 在区间[2,8]上并
不单调。不符合随着m 的增加,概率值递减的要求。所以拟合效果并不理想。
用四次函数拟合
2 3 4 5 6 7 8
-0.2
0
0.2
0.4
0.6
0.8
1
1.2
data 1
cubic
3 4 5 6 7 8
-0.6
-0.5
-0.4
-0.3
-0.2
-0.1
2 3 4 5 6 7 8
-0.2
0
0.2
0.4
0.6
0.8
1
1.2
data 1
4th degree
拟合函数是y=-0.005430x4+0.1005x3-0.5836x2+ 0.9164x+0.8019
因为随着m 的增大,概率值是减小的,而拟合函数在[2,8]区间并不是单调递减
的,故拟合的效果并不理想。
对于次数大于4 的多项式回归方程可作同样的分析可知拟合的效果都不理想。
从而对于固定的n,问题“有n 个人,至少有m 个人同一天生日的概率?(m.. n,
n≤365)”不能由多项式或者形如y=a+b*ecx的函数作回归方程预测相应的概率值。
综上所述,对于变化的n,m,问题“有n 个人,至少有m 个人同一天生日的
概率?(m.. n,n≤365)”并不能用多项式作回归方程预测相应的概率值。到目前
为止,解决这个问题的一个最为有效而且简单得方法是蒙特卡罗法。

路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2025-7-17 20:55 , Processed in 0.687706 second(s), 27 queries .

回顶部