python是否可以使用代码生成一百万个随机数
import random
a = random.randint(1, 50)
for i in range(1000000):
print(a)
如果可以的话,大约需要多长时间?
答案 0 :(得分:2)
当然可以。用时间库对其进行测试。
import time
import random
from random import randint
start = time.time()
for i in range(1000000):
a = random.randint(1, 50)
end = time.time()
print('It took ' + str(end-start) +' seconds to generate 1000000 numbers')
对我来说,这是0.986739158630371秒,但是打印出这些数字会大大减慢该过程,因此,我不建议打印它们。
您必须将随机数生成器放入循环内,否则运行期间它将不会更改。
答案 1 :(得分:1)
请注意,您的代码只会生成一个随机整数,然后将其打印一百万次。
如果要生成一百万个随机数,则必须在循环中调用randint()
。
也就是说,根据您所使用的Python版本和硬件的详细信息,仅生成一百万个随机整数所花费的时间不会超过几秒钟。在显示的代码中,打印它们将花费更长的时间。
答案 2 :(得分:1)
笔记本电脑需要0.92秒。
from timeit import timeit
timeit(lambda:[ random.randint(1,50) for _ in range(1000000) ], number=1)
答案 3 :(得分:0)
您的代码现在将一遍又一遍地打印相同的数字,因为您只生成一次,然后打印一百万次。
import random
for i in range(1000000):
a = random.randint(1, 50)
print(a)
这样可以使每次循环都生成一个新数字。 至于速度,只需尝试它就不会花很长时间。