gpt4 book ai didi

Python 程序,计算掷公平骰子 12 次时至少两次获得 1 的概率

转载 作者:行者123 更新时间:2023-12-01 08:59:45 27 4
gpt4 key购买 nike

import random
import sys

bestcounter1 = 0
bestcounter2=0
get_sample = int(sys.argv[1])

for i in range(get_sample):
for i in range(12):
if (random.randint(1,6)==1):
bestcounter1+=1
bestcounter2+=1

oneatleasttwice = (bestcounter2*1.0)/(2*(get_sample))

#Divide by 2 to make both comparable. Otherwise 2 will always be greater than 1 !
print("One atleast twice in 12 rolls: ", oneatleasttwice)

谁能解释一下这里使用的逻辑是否正确?我得到的输出总是在 1 左右。

谢谢

最佳答案

您必须将计数器放置在正确的位置。假设 bestcounter1 用于在每次运行(12 次)期间对 1 的值进行计数,而 bestcounter2 用于在您获得 2 个或多个 1 值时对运行进行计数。然后您的 main for 循环应如下所示:

for i in range(get_sample):
# reset before every run
bestcounter1 = 0
for i in range(12):
if random.randint(1, 6) == 1:
# count values of 1
bestcounter1 += 1
# check if we got 2 or more values of 1
if bestcounter1 >= 2:
# count proper cases
bestcounter2 += 1
break

oneatleasttwice = bestcounter2 / get_sample

我运行一百万次,结果为 61.9%。

关于Python 程序,计算掷公平骰子 12 次时至少两次获得 1 的概率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52549254/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com