乱数について【C言語を学ぼう】
2015/06/08
乱数
乱数 → コンピューターにランダムな数値を選択させる
使用する3つの関数
- rand → 乱数を取得する
- srand → 乱数の基準値を決定する *プログラム実行時に一度だけ!
- time → 現在のUnixタイムスタンプを取得する *1970年1月1日からの経過秒数
乱数取得の手順
乱数を取得したい 例)rand();
↓
しかし…コンピューターは基準を決めてあげないと、毎回同じパターンの数値を出力する。
↓
乱数の基準値(乱数のタネ)を決めてあげる。 例)srand(200);
↓
乱数の基準値から、乱数取得に成功。
↓
しかし…今度はその基準値から、毎回同じパターンの数値を出力してしまう。
↓
そこで、乱数の基準値をUnixタイムスタンプに設定。
#include <time.h> void main(void) { int t; t = time(NULL); srand(t); }
乱数取得に必要なコードをまとめると…
#include <stdio.h> #include <stdlib.h> #include <time.h> void main(void) { int t; int num; t = time(NULL); srand (t); // 基準をUnixタイムスタンプに設定 num = rand(); //rand関数の結果をnumに代入 printf("num = %d¥n" , num); }
思い通りの乱数を得るヒント
0から9までの乱数を得る
num = rand(); num%10;
1から10までの乱数を得る
num = rand(); (num%10)+1;