R学习之统计实验(七)--大于1问题(R语言编程)-----数模

17 篇文章 11 订阅

问题

U1 U 1 , U2 U 2 · · · 是一个i.i.d序列,且 Ui U i ~ U 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!!!

添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值