Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 3个或更多连续面的蒙特卡罗_R_Statistics_Montecarlo - Fatal编程技术网

R 3个或更多连续面的蒙特卡罗

R 3个或更多连续面的蒙特卡罗,r,statistics,montecarlo,R,Statistics,Montecarlo,我写这段代码是为了在100000次迭代的模拟中检查3个或更多的连续面,一个公平的模具有5卷。我认为这是正确的,但我遗漏了一些东西。我不断得到一个缺少值的错误: nrep = 500000 count = 0 for (i in 1:nrep) { roll = sample(6, 5) print(roll) if (roll[i] == roll[i+1] & roll[i+1] == roll[i+2]) count = count + 1 } print(count)

我写这段代码是为了在100000次迭代的模拟中检查3个或更多的连续面,一个公平的模具有5卷。我认为这是正确的,但我遗漏了一些东西。我不断得到一个缺少值的错误:

nrep = 500000
count = 0
for (i in 1:nrep) {
  roll = sample(6, 5)
  print(roll)
  if (roll[i] == roll[i+1] & roll[i+1] == roll[i+2]) count = count + 1
}
print(count)

请建议仅使用基数R进行更正。

除了我的评论之外,您还可以使用函数
rle()
计算向量中等值运行的长度和值。您可以执行以下操作

nrep=500000
计数=0
适用于(1:nrep中的i){
滚动=样本(6,5,替换=真)
滚动=滚动(滚动)
如果(有(滚动长度>=3)){
打印(卷)
计数=计数+1
}
}

您正在索引长度为5(
roll
)的内容,其值可以大到
nrep
。我正在考虑另一个解决方案(几分钟后作为答案发布)。编辑:默认情况下,您还可以使用gin
sample()
,它具有
replace=FALSE
。Thsi意味着你将永远看不到连续的脸,因为没有数字可以重复。这似乎是我想要的工作!谢谢你,托马斯!