同一天生日的计算
上一节
下一节
【R实验】生日问题
在一个有60人的班级里,至少有两人生日相同的概率?
n个人中至少有两个人生日相同的概率为1-A(365,n)/(365)^n。
在R中计算过程如下
> n<-64
> 1-prod(365:(365-n+1))/(365^n)
[1] 0.9971905
#prod(365:(365-n+1)表示计算连乘,365*364*363……(365-n+1)
关于生日问题,也可以用模拟,来得到相应概率。R程序如下:
> set.seed(100)
> n<-64
> sim<-10000
> x<-numeric(sim)
> for (i in 1:sim)
+ { a<-sample(1:365,n,replace=T)
+ x[i]<-n-length(unique(a))
+ }
> 1-mean(x==0)
[1] 0.9971
#unique(a)用于删除a中重复的元素,length将返回删除重复元素后a的长度,也即a中生日不同的数量。若第i次实验中,没有人同一天生日,那么length将返回n,与此同时x[i]=0。计算1-mean(x==0)就可以得到有人同一天生日的频率。

