invest <- 10000
p_value <- runif(1,0,1)
while (invest != 1000000 | invest != 0) {
p <- rbinom(1,1,p_value)
if (p == 0) {
invest <- invest - 1000
} else {
invest <- invest + 1000
}
print(invest)
}
我面临的问题是,当达到1000000或0时,while循环不会中断,并且基本上是无限运行的(打印功能仅是在测试时见证结果值的地方)。我不确定我要去哪里。任何见解均表示赞赏。
答案 0 :(得分:0)
我认为您想要的是:
invest <- 10000
p_value <- runif(1, 0, 1)
while(0 < invest && invest < 1000000){
if(rbinom(1, 1, p_value) == 0)
invest <- invest - 1000
else
invest <- invest + 1000
cat("invest:", invest, fill=TRUE)
}
答案 1 :(得分:0)
您需要学习逻辑运算符的工作方式。
您写的是:invest is not 1000000 OR invest is not 0
。总是如此。没有任何价值不能成立。
投资为0 => 0不是1000000 =>是
投资额为1000000 => 1000000不是0 =>正确
invest是其他任何值=>不是1000000也不是0 => true