我有两个python随机的例子给出不同的结果,虽然逻辑上它们应该是相同的
In [8]: random.seed(100)
In [9]: for i in range(2):
...:
...:
...: a = [1,2,3,45]
...: random.shuffle(a)
...: random.randint(10,20)
...: print a
...: random.seed(100)
...:
[1, 45, 3, 2]
[45, 3, 2, 1]
In [6]: for i in range(2):
...: random.seed(100)
...:
...: a = [1,2,3,45]
...: random.shuffle(a)
...: random.randint(10,20)
...: print a
...: random.seed(100)
...:
...:
[45, 3, 2, 1]
[45, 3, 2, 1]
任何人都可以解释这种行为吗?
答案 0 :(得分:1)
第一次调用shuffle()之前,您没有在第一个示例中为随机数生成器播种,因此您将获得(伪)随机结果。
在下面的示例中,您始终在调用shuffle()之前为随机数生成器播种,因此您将始终获得相同的结果。