问题很简单:
我正在使用python random模块生成随机整数.我想知道random.seed()函数使用的建议值是多少?目前我将此默认设置为当前时间,但这并不理想.看起来字符串文字常量(类似于密码)也不是理想/强大
建议?
谢谢,-aj
更新:
我生成随机整数的原因是为了生成测试数据.这些数字不需要是可重复的.
Jed*_*ith 13
根据以下文件random.seed:
如果省略x或None,则使用当前系统时间; 当前系统时间也用于在首次导入模块时初始化生成器.如果操作系统提供随机源,则使用它们而不是系统时间(
os.urandom()有关可用性的详细信息,请参阅函数).
如果你没有将某些内容传递给种子,它将尝试使用操作系统提供的随机源而不是时间,这总是更好的选择.这可以为您节省一些工作,并且可以达到最佳效果.关于可用性,文档os.urandom告诉我们:
在类UNIX系统上,这将查询/ dev/urandom,在Windows上,它将使用CryptGenRandom.
跨平台随机种子是这里的重大胜利; 您可以安全地省略种子并相信它几乎在您将使用Python的每个平台上都是随机的.即使Python回归到时间,也可能只有一毫秒的窗口(或更少)来猜测种子.我不认为你使用当前时间会遇到任何麻烦 - 即便如此,它只是一个后备.