我想“随机设置”我的随机种子。就像np.random.seed(42)
这样的东西,读过《银河旅行者指南》的人会开玩笑。
但是我希望能够以字符串开头随机种子,例如引用。
类似于np.random.seed(str_to_int("I like cake"))
,为此我需要一个函数,该函数将整数归因于字符串。
我愿意在我的字符串中只允许使用字母(如果需要的话,可以使用小写字母),如果这样做可以简化任务。该函数不一定是随机的,但常数0函数之外的其他函数都很好。
答案 0 :(得分:4)
事实证明,至少在Python 3中,seed
function can be seeded from a string。
在Python 2中,您可以先输入CRC of a string,然后输入use this as a seed。
答案 1 :(得分:2)
您可以使用hash()函数将字符串转换为整数:
print(hash("tata"))
输出:
2314062222093390636
这是一个整数,可以使用int进行播种。
作为UNIX Man pointed out,random.seed(..)
可以直接接受str
。
来自@The Unix Man的评论:python哈希使用随机化,同一程序的不同运行导致不同的哈希值:更多内容请阅读
https://docs.python.org/3.3/using/cmdline.html
和param -R(为了兼容性而保留-python 3.3+默认情况下启用了随机化。)
底线:
不要对同一程序的不同运行使用hash(),因为它会加盐-并在运行之间导致不同的哈希值。