我通过以下方式使用字符串散列来播种随机状态:
context = "string"
seed = hash(context) % 4294967295 # This is necessary to keep the hash within allowed seed values
np.random.seed(seed)
不幸的是(对于我的使用而言)在 Python 3.3 及更高版本中运行之间是不确定的。我确实知道我可以将 PYTHONHASHSEED
环境变量设置为一个整数值以重新获得确定性,但我可能更喜欢感觉不那么骇人听闻的东西,并且不会完全忽视通过添加的额外安全性随机散列。建议?
原文由 Jimmy C 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用专门构建的哈希函数。
zlib.adler32()
是一个很好的选择;或者,查看hashlib
模块以获得更多选项。