C/C++乱数作り方メモ

2013年9月9日月曜日

C言語

t f B! P L
こないだちょっと分からなくて困ったのでメモ


一般的な方法

*1から6までの整数の数字をランダムに取得
int dice = rand() % 6 +1;

一番よく見る乱数の作り方



もうちょっといい方法

*1から6までの整数の数字をランダムに取得
int dice = (int)(6.0 * rand()/(RAND_MAX+1.0)) +1;

この方法の方がシステムに依存せず乱数を取得できる・・・らしい
それに最大値が小数点で桁数が分からない場合でも使える

*0から12.345の少数を含む数字をランダムに取得
int r = 12.345 * rand()/(RAND_MAX+1.0);



乱数の初期化

もはや常識レベルの話ではあるけど乱数の初期化として
srand(int seed);
を使って乱数の種(seed)を設定する必要がある

一般的なのはtime(NULL)を使ってその時の時間をシード値にすること
srand((unsigned int)time(NULL));
これをプログラムの最初に一回やっとけばOK

Translate

このブログを検索

  • ()
  • ()
もっと見る

QooQ