乱数について【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;