这是我的代码..
T1=matrix(nrow=1000,ncol=1)
T2=matrix(nrow=1000,ncol=1)
X1=matrix(nrow=6,ncol=1)
X2=matrix(nrow=6,ncol=1)
n1=1
n2=2
while((n1<=5)||(n2<=5))
{
t=t+rexp(1,rate=4.3)
u=runif(1,0,1)
if(u<=0.25)
{
X1[n1]=t
n1=n1+1
}
if(u>0.25)
{
X2[n2]=t
n2=n2+1
}
}
它只是继续处理它并且不会停止。我无法继续。我认为它运行的是无限循环,但我不确定。 没有时间它工作正常,终止条件肯定会达到,但那么为什么它不工作。请帮忙。 (顺便说一句,我有16GB内存,所以它并不是说我的电脑很慢或太旧......我已经等了足够长时间而且它仍然继续处理因此我认为这是一个无限循环)
答案 0 :(得分:0)
这可能无限期地运行如果
u
始终为<= 0.25
或u
始终为> 0.25
。 如果 1 ,n2
永远不会更改,因此while
条件永远不会退出。如果 2 ,则n1
永远不会更改,因此while
条件永远不会退出。
这是因为您正在测试n1
或 n2
是否小于5.在任何一种情况下,其中一个始终小于5。
您可能想使用while((n1 <= 5) & (n2 <= 5))
?
其他评论:
t
T1
或T2
这里做什么