0

srand(time(NULL))を使って乱数を生成しています。なぜそれが常に乱数さえも与えるのか、何か考えはありますか?私の場合、そのようにしています。私も奇数が必要なのを手伝ってください。0、1のセットが必要です。例:{1,1,0,0,1,0,0,0,1,1,0}

4

2 に答える 2

3

電話

srand(time(NULL));

プログラムの最初に 1 回だけ、ランダムなシーケンスを「シャッフル」します。

それから電話する

rand();

0からの範囲の数値を返しRAND_MAXます。

0または1のみが必要な場合は、試してみてください

int n = rand() % 2;

また

int n = rand() & 0x01;
于 2012-04-14T10:03:48.597 に答える
0

変数を初期化するようにPRNGを初期化することを考えてください...あなたはしません

// pseudo-code
// print numbers from 1 to 10
do 10 times
    number_to_print = 1
    print number_to_print
    number_to_print++
end loop

同様に、srand()プログラムの実行ごとに 1 回だけ呼び出す必要があります。

call srand() // initialize PRNG
loop
    rand()
end loop
于 2012-04-14T10:12:03.553 に答える