2017-09-27 14 views
1

Python 3の場合、randomモジュールのデフォルトのシードがシステム時刻に基づいていることをインターネット上のさまざまな場所で見つけることができます。ランダム:デフォルトのシードは何ですか?

これはPython 2.7のケースにも当てはまりますか? 2つの異なるPythonプロセスを開始し、両方とも私がimport random; random.random()を実行すると、2つの異なるプロセスが異なる結果を返すので、それは想像してください。

システム時間を使用する場合、実際に使用されるシードは何ですか? (たとえば、「深夜からの秒数」または「UNIXエポックからのマイクロ秒数」など) もしそうでなければ、PRNGをシードするために何が使用されますか?

答えて

1

Randomオブジェクトのデフォルトのシードを生成する方法のソースコードです。

try: 
    # Seed with enough bytes to span the 19937 bit 
    # state space for the Mersenne Twister 
    a = long(_hexlify(_urandom(2500)), 16) 
except NotImplementedError: 
    import time 
    a = long(time.time() * 256) # use fractional seconds 

urandomos.urandomに等しいです。 urandomの詳細については、pageをご確認ください。

関連する問題