我有一个简短的问题。我目前正在使用random.choice()从列表中进行选择,我想知道为什么它总是调用相同的项。一旦我停止程序并重新启动它,它就会改变。谁能解释一下random类是如何工作的,它是如何做到这一点的?
谢谢
发布于 2012-04-17 05:46:14
这是我对你最有可能做的事情的猜测:
import random
l = [1,2,3,4,5]
random.Random(500).choice(l)
# 4
random.Random(500).choice(l)
# 4
random.Random(500).choice(l)
# 4如果您正在使用具有相同种子的实际Random类,并且每次都创建一个新实例,那么您正在执行相同的伪随机操作。这实际上是一个功能(种子),让你在未来的例程运行中有一个可重复的随机化。
也可以使用种子执行此操作:
l = [1,2,3,4,5]
r = random.Random(500) # seed number is arbitrary
r.choice(l)
r.choice(l)或者使用方便的方法:random.choice(l)
https://stackoverflow.com/questions/10181932
复制相似问题