Pythonでは、ランダムシードジェネレータを備えたシステムにいると仮定して、代わりにrandom.seed()を取得して代わりにシステム時間を使用するにはどうすればよいですか? (/ dev/urandomが存在しないかのように)
import random
from datetime import datetime
random.seed(datetime.now())
できるよ
import random
import time
random.seed(time.time())
このライブラリを知っていますか:PyRandLib?見る:
https://schmouk.github.io/PyRandLib/ to easily download archives versions, and
https://github.com/schmouk/PyRandLib to get access to the code.
このライブラリには、Python "ビルトイン"ライブラリランダム(ちょうど、Zipを解凍するか、ダウンロードしたものを解凍するだけ) 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) )
これは主な利点を提供します。非常に短い期間、疑似ランダムジェネレーターに供給する最初のシードは、2つの連続する呼び出し間で大きく異なります。