Silverlight System.Randomシーケンスクロスプラットフォーム
-
04-10-2019 - |
質問
さまざまなプラットフォームの効果を知る必要があります System.Random
オブジェクト(シルバーライト)。シーケンスは、Mac、PC、および32 /64ビットで同じように作成されていますか?
解決
乱数を生成するアルゴリズムは、ランタイムにエンコードされます。したがって、プラットフォームに関係なく、特定の種子値に対して同じ「ランダム」数字のセットが表示されるはずです。
デフォルトのコンストラクターの拡張動作 Random
(シード値が時間ベースである場合)は、プラットフォームごとにわずかに異なる場合があります。たとえば、のインスタンスの迅速な作成 Random
同じシーケンスを生成するいくつかのインスタンスを作成する場合があります。これらの「複製」の分布は、プラットフォームを含むあらゆる種類の条件によって異なる場合があります。
他のヒント
私の「愚かな」答えを失望させますが、私の心には、乱数は常に考慮されるべきです ランダム したがって、作成されたシーケンスは、「ドメイン」で同じように処理する必要があります。 .NET(またはSilverlight)乱数ジェネレーターは、シード値に応じて擬似ランダムアルゴリズムを使用しており、同じシード値を使用すると同じ数値シーケンスを生成することを知っていますが、この事実に依存しないことを知っています。
いくつかのプラットフォームで乱数を同期する必要がある場合、何らかの「期待」があるように思えます。また、期待値シーケンスに乱数ジェネレーターを使用すると、私にとっては奇妙に見えます。
あなたのユースケースについてもっと教えてもらえば、おそらく私たちは別のより固体解決策を見つけることができますか?
ただ私の意見。