1

疑似乱数無限数シリーズを生成するための軽量アルゴリズムを作成する必要があり、初期シードに強く依存しています。

Pythonでは次のようになります

seed = 3345                 // Common number
generator = numgen(seed)
while True:
    generator.getNext()     // With the same seed it produce same numbers

私が書いたように、同じシードを使用すると、異なるマシンでも異なる時間でも同じ数のシリーズを生成する必要があります。これには標準的なパターンがありますか、それとも独自のアルゴリズムを実装する必要がありますか?

4

1 に答える 1

9

与えられた要件があれば、一定のシリーズに行くことができます

generator = itertools.repeat(seed)

これは

  • 軽量
  • 必ずしもランダムではない
  • 初期シードに強く依存
  • 別のマシンでも同じシリーズを生産する

編集:これを実際の答えにするために、PythonのMersenne Twisterを使用して一連の乱数を生成する方法を次に示します。

seed = 3345
maximum = 1000000
generator = random.Random(seed)
while True:
    print generator.random(maximum)

独自のrandom.Randomインスタンスを作成すると、他の場所からの乱数ジェネレーターへの呼び出しがランダム状態に干渉しないことが保証されます。

于 2011-05-03T14:59:49.410 に答える