iPhoneアプリ開発で乱数を使いたいんですが、

下記のようなコードだと、常に同じパターンの
乱数が生成されてしまいます。
これを本当の乱数にするにはどうすれば良い
でしょうか?
Objective-C以外の言語でいうseedの初期化
もやってるつもりですが、常に同じパターンの
乱数が生成されてしまいます。
srand(sec); // 現在の秒
for ( int cnt = 0; cnt < 100; cnt++ ) {
int rnd = round( random() % 100 );
NSLog( [NSString stringWithFormat:@"%d", rnd] );
}

回答の条件
  • 1人1回まで
  • 登録:2009/11/11 13:58:18
  • 終了:2009/11/13 13:26:59

回答(1件)

  • id:hissssa
    Objective-Cの事は知らないのですが、srand()に対応する乱数発生関数はrand()なのでは?。
    random()というのがsrand()と対応していないから同じ乱数が発生し続けているのではないでしょうか。
  • id:tdoi
    同じく、Objective-Cは詳しくないですが、hissssaさんのがビンゴな気がします。
    以下のURLとか英語ですが、ソースは参考になるかと思います。

    http://stackoverflow.com/questions/160890/generating-random-numbers-in-objective-c

    初期化がいらないarc4random()

    や、

    srandom(time(NULL));
    random();

    とかでよさそうですね。
  • id:yellowberry
    ありがとうございます。
    tdoiさんの
    srandom(time(NULL));
    random();
    で、解決しました。
    せっかくなのでコメント欄ではなく
    回答に付けなおしてくださいm(__)m
  • id:yellowberry
    tdoiさん&hissssaさん
    少しですが、ポイント付メッセージを送信させていただきました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません