print('Seeding with 1...\n')
random.seed(1)
print(random.random())
print(random.uniform(1,10))
print(random.choice(list("ABCDEFGHI")))
print('\nRe-seeding with 42...\n')
random.seed(42) # 重设随机种子
print(random.random())
print(random.uniform(1,10))
print(random.choice(list("ABCDEFGHI")))
print('\nRe-seeding with 1...\n')
random.seed(1) # 重设随机种子
print(random.random())
print(random.uniform(1,10))
print(random.choice(list("ABCDEFGHI")))
print('\nRe-seeding with 42...\n')
random.seed(42) # 重设随机种子
print(random.random())
print(random.uniform(1,10))
print(random.choice(list("ABCDEFGHI")))
Seeding with 1...
0.13436424411240122
8.626903632435095
B
Re-seeding with 42...
0.6394267984578837
1.2250967970040025
E
Re-seeding with 1...
0.13436424411240122
8.626903632435095
B
Re-seeding with 42...
0.6394267984578837
1.2250967970040025
E
Python定义了一组用于生成或操作随机数的函数。 本文介绍:
random
模块random.seed()
再生产数字secrets
模块创建密码学上强的随机数numpy.random
创建随机 nd 数组random
模块该模块为各种版本实现伪随机数生成器。它使用Mersenne Twister算法(https://en.wikipedia.org/wiki/Mersenne_Twister)作为其核心生成器。 之所以称其为伪随机数,是因为数字看起来是随机的,但是是可重现的。
种子生成器
使用
random.seed()
,可以使结果可重复,并且random.seed()
之后的调用链将产生相同的数据轨迹。 随机数序列变得确定,或完全由种子值确定。secrets
模块secrets
模块用于生成适合于管理数据(例如密码,帐户身份验证,安全令牌和相关机密)的密码学上强的随机数。特别是,应优先使用
secrets
而不是random
模块中默认的伪随机数生成器,后者是为建模和仿真而设计的,而不是安全或加密技术。NumPy的随机数
为多维数组创建随机数。NumPy伪随机数生成器与Python标准库伪随机数生成器不同。
重要的是,设置Python伪随机数生成器种子不会影响NumPy伪随机数生成器,必须单独设置和使用。