为了账号安全,请及时绑定邮箱和手机立即绑定

为什么下面的代码没有给出大约 0.75 的返回概率?

为什么下面的代码没有给出大约 0.75 的返回概率?

暮色呼如 2023-08-15 17:14:33
任务是模拟一对骰子的 10,000 次投掷,并计算当我们将两个骰子的结果相乘时,有多少次投掷产生偶数。这个想法是为了表明这应该非常接近理论概率 0.75。我编写了以下代码,但它给出了 8167 次偶积抛出,而实际上它应该接近 7500。np.random.seed(193)#np.random.randint(0,7) is a (random) die count=0for i in range(10000):    if np.mod(np.random.randint(0,7)*np.random.randint(0,7), 2)==0:         count+=1count(我知道有很多方法可以做到这一点,也许还有更优雅的方法,只是想看看为什么会产生这样的结果。)
查看完整描述

2 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

正如评论中指出的,你想要,因为骰子上np.random.randint(1, 7)没有:0


import numpy as np


np.random.seed(193)


count = 0

for i in range(10000):

    if np.mod(np.random.randint(1, 7) * np.random.randint(1, 7), 2) == 0:

        count += 1


print(count)

要不就:


import numpy as np


np.random.seed(193)


count = sum([1 - np.mod(np.random.randint(1, 7) * np.random.randint(1, 7), 2)

             for _ in range(10000)])


print(count)


查看完整回答
反对 回复 2023-08-15
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

random.randint(0,7) 可以返回 0 或 7。需要是 random.randint(1,6)



查看完整回答
反对 回复 2023-08-15
  • 2 回答
  • 0 关注
  • 90 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信