为什么种子随机输出在python版本之间似乎有所不同?我是否错过了明显的事情,是否有记录的行为(我找不到)
尝试在python版本之间重现种子的随机数会产生不同的结果:
# python 3.7
rachel = sorted(Random('rachel').sample(range(57), 6))
larry = sorted(Random('larry').sample(range(57), 6))
armin = sorted(Random('armin').sample(range(57), 6))
laura = sorted(Random('laura').sample(range(57), 6))
rachel, larry, armin, laura
输出:
([8, 22, 27, 35, 45, 47],
[10, 18, 20, 29, 45, 47],
[4, 7, 15, 22, 47, 52],
[5, 8, 37, 40, 50, 55])
Raymond Hettinger在Europycon 2011上的高级python的屏幕截图显示了不同的输出-可能是python 2.6或2.7 :(图像质量很差,但是结果明显不同)
答案 0 :(得分:2)
在random
模块中查看https://api.flutter.dev/flutter/widgets/ListView/ListView.builder.html函数的文档,您会发现有一点说明,在Python 3.2中默认使用其他版本。
使用版本2(默认值)时,str,bytes或bytearray对象将转换为int并使用其所有位。
对于版本1(用于从旧版本的Python中复制随机序列提供),用于str和bytes的算法生成的种子范围更窄。
这似乎足以回答屏幕截图与案例之间的不同顺序这一事实。