蒙特卡洛三月疯狂模拟

时间:2018-03-04 16:09:53

标签: python

对于我必须为March Madness括号模拟预测...我决定通过Python而不是Excel。基本上,我的方法是生成x个随机数,x是每个球队每场比赛各自的投篮数,如果这个数字大于y,那将是相应球队的投篮命中率,他们会错过这个投篮。通过这样做,可以非常粗略地预测大量的游戏和结果。我是Python的新手,但这就是我所知道的:

import random

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

这给了我25个随机数,但是现在我必须将它们与每支球队的投篮命中率进行比较。我如何比较所有这25个随机数,以确定每个随机数是否小于,比如0.400 ...并计算那些随机数?

2 个答案:

答案 0 :(得分:1)

你可以写

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。

希望这有帮助。

答案 1 :(得分:1)

您可以使用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))