pythonでのseedの使用

2830 ワード

すべての標準ライブラリで提供されるRandom関数は、実際には偽のRandomです.偽Randomとは,返される乱数が,実際の意味での乱数ではなく,安定化アルゴリズムによって得られる安定化結果シーケンスであることを意味する.標準ライブラリRandomを呼び出し続けると、N回呼び出した後、出力結果は最初のシーケンスをループします.すなわち,標準ライブラリRandomで生成できる異なる結果の個数も限られている.32ビットシステムは一般的に数万回後に重複する.Seedはこのアルゴリズムが計算を開始する最初の値であるため,seedが同じである限り,後続のすべての「ランダム」結果と順序も完全に一致する.
random.seed()は、乱数を生成する際に使用されるアルゴリズムの初期値を指定するために使用されます.
1.同じseed()値を使用すると、生成されるたびに乱数が同じになります.
2.この値を設定しない場合、システムは時間に応じて自分でこの値を選択します.このとき生成される乱数は時間差によって異なる.
3.設定したseed()値は一度のみ有効
import random
num=0
while(num<5):
    random.seed(5)
    print(random.random())
    num+=10.22199317108973948
0.22199317108973948
0.22199317108973948
0.22199317108973948
0.22199317108973948
import random
num=0
random.seed(5)
while(num<5):
    print(random.random())
    num+=10.22199317108973948
0.8707323061773764
0.20671915533942642
0.9186109079379216
0.48841118879482914