R學習之統計實驗(七)--大於1問題(R語言編程)-----數模

問題

U1 ,U2··· 是一個i.i.d序列,且Ui ~U (0,1).令

N =min {n:i=1nUi >1}

用統計模擬方法求E(N)

直接R模擬(大數定律)

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

morethanone <-function(n){
  y=0
  for (i in 1:n) {
    sum=0;y[i]=0
    while (sum<=1) {
      y[i]=y[i]+1
      u<-runif(1)
      x<-floor(u*2)
      sum=sum+x
    }
  }
  rt<-c('需要次數期望'=mean(y));rt
}
morethanone(10000)

注意:編程時候如果要對向量中進行有類似y[i]=[i]+1操作,則之前必須對y[i]賦值過(y=0不算,只表示對y[1]進行過賦值和定義過y變量)!!!不然會產生na結果(表示有缺失值)

運行結果

> morethanone <-function(n){
+   y=0
+   for (i in 1:n) {
+     sum=0;y[i]=0
+     while (sum<=1) {
+       y[i]=y[i]+1
+       u<-runif(1)
+       x<-floor(u*2)
+       sum=sum+x
+     }
+   }
+   rt<-c('需要次數期望'=mean(y));rt
+ }
> morethanone(10000)
需要次數期望 
      4.0041 

DONE!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章