問題
令 , , 是一個i.i.d序列,且 ~ (0,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