【问题标题】:Count the Number of 6s Rolled on a Number of Dice in R计算在 R 中的骰子数量上掷出的 6 的数量
【发布时间】:2020-05-06 23:48:39
【问题描述】:

我正在尝试开发代码,该代码将告诉我在使用 1 到 20 个骰子的情况下滚动至少一个 6 的可能性。我特别想构建一段循环遍历问题空间的代码。生成此信息。这个问题让我不知所措。

我尝试使用示例函数并查看了列联表。

die1 = sample(1:6,n,replace=T)
die2 = sample(1:6,n,replace=T)
sum_of_dice = die1 + die2
counts = table(sum_of_dice)
proba_empiric = counts/sum(counts)
barplot(proba_empiric)

以上提供了概率的基础,但不是两个骰子的联合概率。

最终的代码应该能够告诉我掷 6 对 1 骰子、2 骰子、3 骰子,一直到 20 骰子的可能性。

【问题讨论】:

    标签: r probability dice


    【解决方案1】:

    模拟使用 1 到 20 骰子掷出至少一个 6 的概率的一种方法是使用rbinom()

    sapply(1:20, function(x) mean(rbinom(10000, x, 1/6) > 0))
    
     [1] 0.1675 0.3008 0.4174 0.5176 0.5982 0.6700 0.7157 0.7704 0.8001 0.8345 0.8643 0.8916 0.9094 0.9220 0.9310
    [16] 0.9471 0.9547 0.9623 0.9697 0.9718
    

    【讨论】:

      【解决方案2】:

      如果我的理解正确,您有 20 个骰子,并且您想知道其中至少出现 1 个 6 的概率。

      我们可以写一个掷骰子的函数

      roll_die <- function() sample(6, 1)
      

      然后编写另一个函数,掷 20 个骰子并检查其中是否至少有一个 6

      roll_20_die <- function() {
         any(replicate(20, roll_die()) == 6)
      }
      

      replicate这个函数足够次数得到概率比

      n <- 10000
      table(replicate(n, roll_20_die()))/n
      
      # FALSE   TRUE 
      #0.0244 0.9756 
      

      【讨论】:

        猜你喜欢
        • 2019-03-04
        • 2023-03-15
        • 2018-04-14
        • 1970-01-01
        • 2015-06-29
        • 2020-09-18
        • 1970-01-01
        • 2021-02-13
        • 2013-06-04
        相关资源
        最近更新 更多