繁体   English   中英

如何在 Python 中重现 R 概率公式

[英]How to reproduce R probabability formula in Python

我已经问了几次这个问题,但我试图从“贝叶斯统计有趣的方式”一书中用 Python 重现一个解决方案。

问题是:掷三个六面骰子并得到大于 7 的值的概率是多少?

书中的答案说有 218 种可能的结果,其中 181 种结果大于 7。

我试图在 Python 中重现的 R 中的代码是:

count <- 0
for (roll1 in c(1:6){
   for(roll2 in c(1:6){
       for(roll3 in c(1:6){
            count <-count + ifelse(roll1+roll2+roll3 > 7,1,0)
    }
  }
}

尝试了这段代码,谢天谢地,社区帮助从函数获取输出: https ://stackoverflow.com/questions/72909169/confused-about-output-from-python-function

然后想创建一个元组列表来创建集合

但怀疑我把自己束缚在圈子里。 有人可以给我一个指针,而不是Python中的解决方案。 结果应该是 216 个排列和 181,其中总和的结果是 181。

等效的 Python 代码:

count = 0
for roll1 in range(1, 7): # Equivalent to R for (roll1 in c(1:6){
    for roll2 in range(1, 7):
        for roll3 in range(1, 7):
            # Use Python conditional expression in place of R ifelse
            count += 1 if roll1 + roll2 + roll3 > 7 else 0

print(count) # Output: 181

或者:

sum(1 
    for roll1 in range(1, 7) 
    for roll2 in range(1, 7) 
    for roll3 in range(1, 7)
    if roll1 + roll2 + roll3 > 7)

第二种选择(来自无液评论):

sum(roll1 + roll2 + roll3 > 7
    for roll1 in range(1, 7) 
    for roll2 in range(1, 7) 
    for roll3 in range(1, 7))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM