在64位Python 2.7.6中为True,但是在32位Python 2.7.3中为False:
random.Random(hash("a")).random() == random.Random("a").random()
那么,Python 2.7.3哈希字符串如何为随机数生成器提供种子呢?
最佳答案
这是因为在32位上hash("a")
是一个负数(由于平台长类型的大小),并且随机模块的行为有所不同。
随机模块seed()函数:
PyNumber_Absolute()
的abs()
PyLong_FromUnsignedLong((unsigned long)hash)
符号位截断和abs给出不同的结果
例如。:
abs(-10) = 10
((unsigned long) -10) = 4294967286
关于python - Python 2.7.3哈希字符串如何用于为随机数生成器提供种子?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23260975/