擬似乱数を使用するJavaシステムを配布する必要があります。システムの各ノードは、一定量のランダムを処理する必要があります。擬似乱数を分割することは可能ですか
結果は再現可能でなければならないため、ランドームはパラメータとしてシードに依存する必要があります。
例えばRandom random = new Random(long seed);
I 100 randomsを処理するために必要と私は2つのノードがある場合、最初のノードが1から50まで処理しなければならず、51〜100
に第二の問題はpseudorandomsが必要ということです毎回(同じ種子について)同じ乱数列を生成するために、繰り返し実行します。
前の例では、51番目のランダムから2番目のノードでランダムな生成を開始する方法はありますか? (したがって、このノードで1から50までの無作為を生成し、ゴミ箱から削除する必要はありません)。
特にありません。あなたは、ノード間の乱数をどのように分割するかについての別の計画を考え出す方が良いでしょう。 2つのノードは最初の50と最後の50ではなく1つおきの乱数を使用します。ノード数を変更しても再現性が必要ですか?そうでなければ、最初の 'ランダム'によって生成されたシードで他の 'ランダム'インスタンスをキーイングすることで、物事をより簡単にすることができます。 –
ええと...これは私の問題を解決することはできません。なぜなら、各ノードは100番目のランダムに処理しなければならないからです。 –
擬似ランダムシーケンスを使用しないで、代わりにハッシュ関数を使用してください。最初のノードは1.50のハッシュを処理し、2番目のノードは51..100のハッシュを処理します –