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