100
たとえば、サイズ 5000 の配列でランダム インデックスを生成する必要がありarr[5000]
ます。より多くのCPUを使用すると思うrand()
ので、100回ループしたくありません。一度呼び出して、ランダムな配列インデックスを持つメカニズムが必要です。私の考えは、最初の 20 個のインデックスにランダムな値を設定し、オフセットを生成して、生成されたランダム値に追加し続けることです。つまり、10
が最初の 20 個のインデックスからのランダム値である場合、オフセットが言う6
場合、私の乱数は次のようになり10,16,22,28...etc
ます。これは良い考えだと思いますか? 他に提案してもらえますか?ありがとう。
質問する
88 次
2 に答える
7
これは恐ろしい考えです。結果の値は「ランダム」ではありません。
ループを実行して、rand()
必要な番号ごとに呼び出します。「より多くのCPUを使用する」ことはありません(何よりも多いですか?)、それは問題ありません。
rand()
また、もちろん、これは通常、せいぜい疑似ランダムジェネレーターですが、それでもアプローチよりも優れていることに注意してください。
于 2013-01-08T16:18:21.143 に答える
0
rand() を使用することをお勧めします。ただし、疑似乱数ジェネレーターを本当に実行したい場合 (99% の場合、これは正しい答えではありません)、Linear Congruential Generatorを見てください。 その背後にある数学は簡単で、libc の基礎です。の random() 実装。楽しみのために同じことを試してみることもできます。ここに別のリンクがあります。
于 2013-01-08T16:32:06.687 に答える