R函数的:
即:重复掷六面骰子方案三次,第一次掷三次得到"6",第二次掷一次,第三次掷四次,所以返回三次、一次、四次。
roll <- function(n, X){
a <- 0
y <- sample(1:n, size=X, replace=TRUE)
while (y!=n){
a <- a+1
return(a)
}
}
roll(6,5)发布于 2020-05-01 22:11:39
正如@James Curran所回答的,最简单的方法是应用负二项分布。
如果您想定义自定义函数roll,可以尝试下面的代码
roll <- function(n, X){
res <- rep(0,X)
for (i in 1:X) {
a <- 0
repeat {
if (sample(n,1)==n) break
a <- a + 1
}
res[i] <- a + 1
}
res
} 或
roll <- function(n, X){
res <- rep(0,X)
for (i in 1:X) {
a <- 0
while (sample(n,1)!=n) {
a <- a + 1
}
res[i] <- a + 1
}
res
} 发布于 2020-05-01 22:01:19
你可以用负二项分布。负二项分布模拟了在"r“成功之前有n个”失败“的概率。所以
> set.set(100)
> rnbinom(3, size = 1, prob = 1/6)
[1] 3 7 0你的三个实验。第一次是3次,第二次是7次,第三次是6次,第一次是6次。
https://stackoverflow.com/questions/61551323
复制相似问题