2012-04-14 12 views
0

私はsrand(time(NULL))を使って乱数を生成しています。 なぜそれが常に偶数の乱数を与えるのか?私の場合は、そのように与える。私も奇数が必要なのを助けてください。 私は0、1のセットが必要です。例えばのための :{1,1,0,0,1,0,0,0,1,1,0}乱数発生器とシード

+5

あなたが使用しているコードを参照してください。 –

+0

あなたは何か間違っている。あなたのコードを教えてください。 –

+2

srand(時間(NULL))は単なる種です。関数rand()が数値を代入しているコードを表示します。 – ScarletAmaranth

答えて

0

考えると試すことができます0または1のみをしたい場合は...あなたは

をしません
// 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()は一度だけ、プログラムの実行ごとに呼び出さなければなりません。

call srand() // initialize PRNG 
loop 
    rand() 
end loop 
3

コール

srand(time(NULL)); 

あなたのプログラムの先頭で一度だけ、それをランダムシーケンスをシャッフルします。

その後

rand(); 

を呼び出し、それがRAND_MAXの範囲0の数値を返します。

あなたは、あなたが変数を初期化するようにPRNGを初期化する

int n = rand() % 2; 

または

int n = rand() & 0x01; 
+0

ありがとうございました。 –