ランダムジェネレータをシードし、Objective-Cでランダムintを作成するにはどうすればよいですか

objective-c random
ランダムジェネレータをシードし、Objective-Cでランダムintを作成するにはどうすればよいですか

Objective-Cのランダムなintの例をいくつか見てきましたが、アプリケーションを実行するたびに、すべての人が同じ番号シーケンスについて不平を言っています。 乱数のシードについて読んだことがありますが、それがどういう意味なのかわかりません。

アプリケーションが再起動された後でも、毎回異なる方法で乱数を生成するにはどうすればよいですか?

NSUserDefaultsにいくつかのデータを保存し、それに応じて異なる値を生成できますか?

  3  0


ベストアンサー

__
random()またはrand()の代わりにarc4random()を使用します。 / dev / urandomを使用し、はるかに優れた擬似乱数を生成しました。 rand()とrandom()はどちらも基本的に悪い乱数ジェネレーターです。

参照:man arc4random
__

#include
picknumber = arc4random() % 3 + 1;

8


次のコードを使用してランダムにシードできます。

srand([[NSDate date] timeIntervalSince1970]);

これにより、毎回新しいランダムシーケンスが得られます。

5


シードする必要のない「arc4random」を使用しています。 あなたはそれを試してみることができます。

1


タイトルとURLをコピーしました