在python中,假设我在一个有随机种子生成器的系统上,我该如何让random.seed()使用系统时间呢? (好像/ dev / urandom不存在)
答案 0 :(得分:34)
import random
from datetime import datetime
random.seed(datetime.now())
答案 1 :(得分:12)
你可以做到
import random
import time
random.seed(time.time())
答案 2 :(得分:2)
你知道这个库吗? PyRandLib ?参见:
https://schmouk.github.io/PyRandLib/ to easily download archives versions, and
https://github.com/schmouk/PyRandLib to get access to the code.
这个库包含许多同类最佳的伪随机数生成器,同时完全按照Python"内置"库随机(只需将下载的存档解压缩或解压缩到Python目录的Lib / site-packages /'子目录中)。
从代码和模块' fastrand32.py'中,您将获得一种更为复杂的方式来随机提供当前时间的随机播放版本。为了您的目的,这将成为:
import time
import random
t = int( time.time() * 1000.0 )
random.seed( ((t & 0xff000000) >> 24) +
((t & 0x00ff0000) >> 8) +
((t & 0x0000ff00) << 8) +
((t & 0x000000ff) << 24) )
这提供了一个主要优势:在非常短的时间内,用于馈送伪随机生成器的初始种子在两次连续呼叫之间将会有很大差异。