gpt4 book ai didi

python - Python 2.7.3 哈希字符串如何用于为随机数生成器提供种子?

转载 作者:太空狗 更新时间:2023-10-29 20:21:33 27 4
gpt4 key购买 nike

在 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() 函数:

  • 传递 int 或 long 它将使用 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com