如何解决为什么以下代码没有给出大约0.75的返回概率?
任务是模拟一对骰子的10,000次投掷,并计算当我们将两个骰子的结果相乘时,这些投掷中有多少投掷产生偶数。这个想法是要表明这应该非常接近于0.75的理论概率。
我编写了以下代码,但当它应该更接近7500时,它为我提供了8167次偶数产品抛出。
np.random.seed(193)
#np.random.randint(0,7) is a (random) die
count=0
for i in range(10000):
if np.mod(np.random.randint(0,7)*np.random.randint(0,7),2)==0:
count+=1
count
(我知道有很多方法可以做到这一点,也许还有更优雅的方法,只是想知道为什么这样做能达到目的。)
解决方法
正如评论中指出的那样,您想要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,2)
for _ in range(10000)])
print(count)
,
random.randint(0,7)可以返回0或7。需要是random.randint(1,6)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。