蒙特卡罗三月疯狂模拟

2024-06-16 14:16:48 发布

您现在位置:Python中文网/ 问答频道 /正文

在课堂上,我需要模拟三月疯狂的预测。。。我决定学习Python而不是Excel。我的方法是,基本上,生成x个随机数,x是每个队每场比赛各自的投篮次数,如果这个数大于y,也就是每个队的投篮命中率,他们就会错过那个投篮机会。通过这样做,游戏的分数和结果可以非常粗略地预测。我对Python非常陌生,但我知道:

import random

for i in range(25):
   print(random.random())

这给了我25个随机数,但现在我要把它们和每支球队的命中率进行比较。我如何比较所有的25个随机数来确定每个数是否小于,比如说,0.400。。。数一数是谁?你知道吗


Tags: 方法inimport游戏forrandom次数excel
2条回答

你可以写

import random

sum = 0
boundary = 0.4
n = 25

for i in range(n):
    random_num = random.random()
    if random_num < boundary:
        sum += random_num

print(sum)

所以这会打印出所有数字的总和,但是我可以补充一下,25个样本对于蒙特卡罗模拟来说太少了。我为类编写了一个程序,我们使用了10.000.000个示例,所以我添加了变量n,您可以很容易地进行更改。你知道吗

希望这有帮助。你知道吗

您可以使用sum

import random

p = .4
n = 25
above_p = sum(1 for _ in range(n) if random.random() > p)
# or sum(random.random() > p for _ in range(n))

相关问题 更多 >