R 蒙特卡罗三选一彩票
这个代码不起作用,我不明白为什么R 蒙特卡罗三选一彩票,r,sampling,montecarlo,R,Sampling,Montecarlo,这个代码不起作用,我不明白为什么 n <- 10000 list <- numeric(n) for(i in 1:n){ trial1 <- sample(0:9,3, replace = TRUE) trial2 <- sample(0:9,3, replace = TRUE) winner <- if(trial1 == trial2) 500 else -1 list[i] <-winner } mean(list) n是否仅当值相同且顺序正确时才
n <- 10000
list <- numeric(n)
for(i in 1:n){
trial1 <- sample(0:9,3, replace = TRUE)
trial2 <- sample(0:9,3, replace = TRUE)
winner <- if(trial1 == trial2) 500 else -1
list[i] <-winner
}
mean(list)
n是否仅当值相同且顺序正确时才返回500?意思是1,2,3和2,3,1是不同的,返回-1
n <- 10000
return_result <- function() {
trial1 <- sample(0:9,3, replace = TRUE)
trial2 <- sample(0:9,3, replace = TRUE)
if(all(trial1 == trial2)) 500 else -1
}
mean(replicate(n, return_result()))
你运行代码了吗?success
在哪里定义?您正在对三个值(一个向量)进行采样。但在if条件中只允许输入一个值。如果您想查看向量是否相同,请使用winner,我以前从问题中复制了它,但忘了更改变量的名称。感谢您的回复。如果您运行它,您将知道这里的trial1
将不等于trial2
,因为您将继续使用sample
函数两次。因此,赢家
总是-1
。
return_result <- function() {
trial1 <- sample(0:9,3, replace = TRUE)
trial2 <- sample(0:9,3, replace = TRUE)
if(all(sort(trial1) == sort(trial2))) 500 else -1
}
mean(replicate(n, return_result()))