[iPhone]Objective- Cの勉強メモ:乱数の取り扱い
まずはObjective-CというかC言語での乱数の発生させる方法。
使える関数は2種類
まず
int rand(void);
という関数でint型の乱数を返すことができる。
このときに返る値は、0~馬鹿でかい数という感じ。
馬鹿でかい数はコンパイラによって変わるらしい。
(ASのMath.random()のように、0~1未満というわけでない)
int i; i = rand(); printf(%d,i);//0から馬鹿でかい数の間の間
ただ、このままだと乱数は実行するたびに常に同じ値を返すことになるので、初期化処理という行為が必要になる。
そこで使うのがsrand();
void srand(unsigned int 初期値);
使い方としては、rand()関数を実行する前にsrand()関数を実行することで初期化すればよし。
初期値には、絶対にかぶらない値を日付データから取ればよし。
//time(NULL)で現在の時刻が1970年1月1日午前0時0分0秒からの通算秒数で得られる。 srand(time(NULL)); rand();
以上が、C言語での設定方法
Objective-Cではsrandは以下のようにするらしい。
//NSDateインスタンスを作って、本日の日付けを秒数に換算してる srand([[NSDate date] timeIntervalSinceReferenceDate]); rand()
※C言語のやり方でも問題なさげ。
Tweet