小编典典

在Python中生成和使用数百万个随机数的有效方法

python

我正在从事涉及Python的相当广泛的蒙特卡洛模拟的编程项目的工作,因此就产生了大量随机数。几乎所有的人,即使不是全部,都将能够由Python的内置随机模块生成。

我是一个编码新手,不熟悉高效的方法。将所有随机数作为一个列表生成,然后遍历该列表,或者每次调用一个函数时都会生成一个新的随机数,这会非常大吗?

还是其他一些无疑更聪明的方法?


阅读 139

收藏
2021-01-20

共1个答案

小编典典

每次生成一个随机数。由于循环的内部工作原理只关心单个随机数,因此请在循环内部生成并使用它。

例:

# do this:
import random

for x in xrange(SOMEVERYLARGENUMBER):
    n = random.randint(1,1000) # whatever your range of random numbers is
    # Do stuff with n

# don't do this:
import random

# This list comprehension generates random numbers in a list
numbers = [random.randint(1,1000) for x in xrange(SOMEVERYLARGENUMBER)]

for n in numbers:
    # Do stuff with n

显然,从实际意义上讲,这并不重要,除非您要处理数十亿次迭代,但是如果您一次只使用一个,为什么还要麻烦生成所有这些数字呢?

2021-01-20