实验:'X是五次试验的二项式,p = 0.5,其中X是头数。 Ysample是X试验的二项式,p = 0.5,其中Ysample是头数。 T是实验重复的次数,直到Ysample> = 3的值。 这是代码:
while (Ysample[i]<3){
length(X)=n
length(Y)=n
X=c(1:n)
Y=c(1:n)
i=1
X[i]=sum(rbinom(5,1,0.5))
Ysample[i]=sum(rbinom(X[i],1,0.5))
i=i+1
}
T=n
我不确定为什么它不起作用,为什么无论我运行多少次我总是得到T = 10000?
答案 0 :(得分:1)
检查您要设置的内容。 T在循环结束时简单地设置为n。它不是计算机或其他任何东西。
此外,您可能需要考虑使用更高阶函数;虽然R可以处理循环,但没有它们会更好,而且使用更高阶函数和操作的默认“矢量化”行为更为惯用R.
答案 1 :(得分:1)
这是你想要的吗?
T <- 0
Ysample <- 0
while( Ysample < 3 )
{
X <- sum( rbinom( 5, 1, 0.5 ) )
Ysample <- sum( rbinom( X, 1, 0.5 ) )
T <- T + 1
}
cat( "T = ", T, "\n\n" )