【发布时间】:2014-11-01 01:31:01
【问题描述】:
我是 R 新手,所以我的大部分代码很可能是错误的。但是,我想知道如何在 for() 循环中使用 while() 循环。如果总数为 2、3、7、11 或 12,我正在尝试多次模拟掷骰子,然后我停止。如果总数为 4、5、6、8、9 或 10,那么我将继续掷骰子,直到出现初始总数或 7。我试图找出结束游戏所需的平均掷骰数
count = 0
x = NULL
for (i in 1:10) {
x[i] = c(sample(1:6,1) +sample(1:6,1))
if(x[i] == c(2||3||7||11||12)) {
if(TRUE) {count = count +1}
} else { while(x[i] == c(4||5||6||8||9||10)) {
x[i +1] = c(sample(1:6,1)+sample(1:6,1))
if(x[i+1] == c(x[i]||7)) {
if(TRUE){count = count + x[i+1]}
}
}
}
}
print(count)
【问题讨论】:
-
您的主要问题是您应该使用
x[i] %in% c(2,3,7,11,12)而不是||运算符(或x[i]==2 || x[i]==3 || ...) -
令我惊讶的是你选择的数字。如果第一组数字是1、2、3、4、5、6,另一组数字是7、8、9、10、11、12,第二组“逃脱”,游戏会不会更简单将是初始数字或 1?概率保持不变......
-
你在这里得到了一组很好的比较答案...
-
这款骰子游戏非常有趣。你怎么能抗拒。我希望会有更多的答案。
-
请在发布之前对您的代码进行一些基本检查。
c(2||3||7||11||12)返回TRUE
标签: r for-loop while-loop