[英]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.