天天看點

R學習之統計實驗(六)--生日問題(R語言程式設計)-----數模DONE!!!

問題

美國數學家伯格米尼曾經做過一個别開生面的實驗:在個盛況空前、人山人海的世界杯賽場上,他随機地在某号看台上召喚了22個球迷,請他們分别寫下自自己的生日,結果竟發現其中有兩人同生日.怎麼會這麼揍巧呢?通過分析求出理論機率,并運用模拟方法求出機率的近似值.人數分别為40, 50, 64時,又如何?

直接R模拟(大數定律)

注意括号各種英文輸入,R語言編寫時候看不出明顯差別

birthday<-function(n,a){
  m=
  for(i in :n){
    u<-runif(a)
    x<-floor(u*)+
    y<-unique(x)
    if(length(y)<a){m=m+}
  }
  rt<-c('有同一天生日的機率'=m/n);rt
}
birthday(,)
birthday(,)
birthday(,)
           

運作結果

> birthday<-function(n,a){
+   m=0
+   for(i in 1:n){
+     u<-runif(a)
+     x<-floor(u*365)+1
+     y<-unique(x)
+     if(length(y)<a){m=m+1}
+   }
+   rt<-c('有同一天生日的機率'=m/n);rt
+ }
> birthday(10000,40)
有同一天生日的機率 
            0.8897 
> birthday(10000,50)
有同一天生日的機率 
            0.9695 
> birthday(10000,64)
有同一天生日的機率 
            0.9965 
           

DONE!!!