import numpy as np
num = 0
while (num < 5):
np.random.seed(1)
print(np.random.random())
num += 1
print('-------------------------')
num2 = 0
while (num2 < 5):
np.random.seed(2)
print(np.random.random())
num2 += 1
print('-------------------------')
num1 = 0
np.random.seed(1)
while (num1 < 5):
print(np.random.random())
num1 += 1
其运行结果是:
0.417022004702574
0.417022004702574
0.417022004702574
0.417022004702574
0.417022004702574
-------------------------
0.43599490214200376
0.43599490214200376
0.43599490214200376
0.43599490214200376
0.43599490214200376
-------------------------
0.417022004702574
0.7203244934421581
0.00011437481734488664
0.30233257263183977
0.14675589081711304
第一段代码把对种子的设置放在了循环里面,每次执行循环都旗帜鲜明地告诉黑盒:“我的种子是1”。那么很显然:同一个黑盒,同一个种子,自然得到的是同一个随机数。
第二段代码只是换成了种子2。
第三段代码把对种子的设置放在了循环外面,他只在第一次循环的时候明确地告诉黑盒:“我的种子是2”。那么也很显然:从第二次循环开始,黑盒用的就是自己生成的新种子了。