全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1767 3
2012-08-04
请大家帮我看看下面的这段程序,最后要返回的是满足N>1时的k的平均值,我做了1000次,所以应返回这1000个k的均值,每次符合条件的k都赋予n[i],但为什么结果最后竟然是500多??请问问题出在哪里?

kehou3=function(B)
{
  k=0
  N=0
  n=array()
  for(i in 1:B)
    {  

      repeat
        {
          k=k+1
          u=runif(1)
          N=N+u
          if(N>1)
             {
               n[i]=k
               break
             }
        }
      
    }
  mean(n)
}
kehou3(1000)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-8-5 12:11:01
每次for循环时你确定不用在repeat语句之前加上K=0,N=0么?

而且,就算照你的程序运行,n也确实含有1000个元素呀?

不可能出现只含有500多个元素的情况!

你这500多究竟是什么意思?——照上下文理解就是“只含500多个元素”的意思。

但是我估计你是想说“mean(n)的值,即n的均值是500多”,对么?

你认为这样很不合理,当然,问题就出在for循环里,你应该在repeat前加上k = 0及N = 0的语句!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-8-5 21:27:56
meishanjia1900 发表于 2012-8-5 12:11
每次for循环时你确定不用在repeat语句之前加上K=0,N=0么?

而且,就算照你的程序运行,n也确实含有1000个 ...
是的,我想要得到的就是mean(n),可是我不懂的事,为什么要在for循环里加上N=0,K=0,我之前是在for循环之前加的,结果就差这么多,这个有什么不同么
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-8-6 08:30:56
帮顶
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群