【发布时间】:2017-08-24 16:14:52
【问题描述】:
我想在 R 中运行一个程序,要求用户选择一些骰子,在骰子上运行模拟并确定将最小数字滚动到最大数字的概率。
例如,如果用户选择 5 个骰子,则最小掷骰数为 5x1=5,最大掷骰数为 5x6=30。我已经有一组骰子和一组总数的代码 - 只需要知道如何增加它。 “d”是骰子数,“k”是掷骰总数,“nreps”是模拟运行(例如 1,000,000)。我想将每个概率存储在一个向量中,然后给出概率与滚动总数(从最小值到最大值)的图(泊松分布)。
probtotk <- function(d, k, nreps){
count <- 0
#do the experiment nreps times
for (rep in 1:nreps){
total <- sum(sample(1:6, d, replace = TRUE))
if (total == k) count <- count +1
}
return(count/nreps)
}
【问题讨论】:
-
我对你的目标感到困惑。您似乎想关注一个特定的总数(
k),但也想查看每个可能的总数(“给出概率与滚动总数的图(从最小值到最大值)”我>)。似乎您应该只选择这两个选项之一(从最小值到最大值似乎更有趣,也同样简单)。 -
我的意思是,如果你掷 5 个骰子,那么进行 1M 模拟以找到总数为 5 的概率,然后进行 1M 模拟以找到总数为 6 的概率是没有意义的, ... 30. 相反,只需进行 1M 次模拟并查看总数的分布。
标签: r