代码一是使用了随机数种子seed(),种子数28,seed( ) 是用于指定随机数生成时所用算法开始的整数值,代码中每执行一次都使用了相同的随机数种子28,所以生成的随机数是相同的。
代码一:
for i in range(5): np.random.seed(28) print(np.random.random())
运行结果:
0.7290137422891191
0.7290137422891191
0.7290137422891191
0.7290137422891191
0.7290137422891191
代码二中每执行一次都使用了不同的随机数种子i,所以生成的随机数是不同的。
代码二:
for i in range(5): np.random.seed(i) print(np.random.random())
运行结果:
0.5488135039273248
0.417022004702574
0.43599490214200376
0.5507979025745755
0.9670298390136767
再举个例子代码三,在执行5次循环中,只有第一次循环使用了seed(),因此seed()只作用了运行结果的第一个随机数字,其他几次循环不执行seed()提供的种子数28,所以根据系统的时间来生成自己的种子数,来生成随机数字,且每次生成的随机数字不相同。
代码三:
np.random.seed(28) for i in range(5): print(np.random.random())
运行结果:
0.7290137422891191
0.5612396023276411
0.12496709200924094
0.39759236870011716
0.7813082062734761
总结:
seed( ) 用于指定随机数生成时所用算法开始的整数值。
1.如果使用相同的seed( )值,则每次生成的随即数都相同;
2.如果不设置这个值,则系统根据时间来自己选择这个值,生成自己的种子,此时每次生成的随机数因时间差异而不同。
3.设置的seed()值仅一次有效