如何解决R - 计算变量中 6 的数量
我正在尝试编写一种算法,让我可以计算在可变数量的骰子上掷出 6 的概率。这是我所拥有的:
num.dice <- 6
## x is the number of iterations
x <- 1
a <- c()
while(x < 1000) {
a[(x:x)] <- sum(sample(1:6,num.dice,replace=TRUE)==1)
x <- x + 1
}
sum(a)/1000
我更喜欢使用蒙特卡洛风格的模拟,但我相信我无法正确计算 6s。
我哪里出错了?
解决方法
我的数学有点生疏,但这就是你要找的吗?
library( gtools )
num_dice <- 1:6
lapply(num_dice,function(x) {
sum(
apply(
permutations( 6,x,1:6,repeats.allowed = TRUE ),1,function(y) any( y == 6 )
)
) / 6^x
})
[[1]]
[1] 0.1666667
[[2]]
[1] 0.3055556
[[3]]
[1] 0.4212963
[[4]]
[1] 0.5177469
[[5]]
[1] 0.5981224
[[6]]
[1] 0.665102
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。