2012-05-12 6 views
3

ので、ランダムではないようです私はint型を作成しています方法です:ランドは、()ここで

int randNumber = rand() % 4; 
NSLog(@"%d", randNumber); 

しかし、私はアプリを起動するたびに数がどんな、同じではありません。

私は、ボタンを作成して、乱数を再初期化し、新しい数値をログに記録し、それから乱数を生成するアクションをアタッチしましたが、アプリケーションの起動時に乱数は常に同じですそれを20回以上開始した)。

アプリの起動時にランダムな数字が常に同じである理由は何ですか?

答えて

13

はあなたがsrand関数(unsigned int型の種子)を呼び出す必要がシード

+0

を働くプログラムの開始? – Talon

+0

nevermind私はそれがちょうどarc4random()だと思う。 – Talon

3

プログラムを実行するたびに別のシードを指定する必要があります。種があれば、乱数生成器は一連の数を生成する。同じ種子が同じ数の数を生み出します。別のセットを取得するには、別のシードが必要です。

は、いくつかのガイダンスのために、このを見てみましょう:Generating random numbers in Objective-C

0

を必要としないarc4random()を、使用してみてください。 rand関数をシードします。あなたがsrandを呼び出さなければ、毎回1でシードされます。

1

rand()は擬似乱数ジェネレータです。それはシードを使用し、各シードに対して正確なシーケンスを生成する。

あなたがこれを行う場合は、制限を設定するのですか

srand(time(NULL)); 

ウィルは

+0

http://stackoverflow.com/questions/5912799/srandtimen-on-iphone-dont-work –