C言語 乱数処理 rand srand

標準ライブラリ関数を使い、
乱数(ランダムな数)を作り出す事ができます。

乱数を作るには、rand 関数を使います。

int rand(void);

0 からRAND_MAX という記号定数の間の乱数が生成され、戻り値として返ります。

RAND_MAX 定数は、<stdlib.h>ファイルに定義されています。

この値を再定義する事により、生成できる乱数の範囲を広げたりできます。

また、rand 関数は、呼ばれる度にランダムな数値が生成されます。

ですが、乱数系列を変えない限り、同じ順番で乱数が生成されます。

乱数系列を変えるには、srand 関数を使います。

void srand(unsigned int seed);

seed に乱数系列を指定します。

通常のプログラムでは、常に乱数系列を変えた方がいい場合が多いので、

毎回、違う乱数系列にします。

毎回違う乱数系列にする時に適している値は、現在時間です。

#include <stdio.h>
#include <time.h>
#include <stdlib.h>      // インクルードが必要

void main(void) {
      int a;

      srand((unsigned int)time(NULL));      // 乱数系列の初期化

      for (i=0; i<=500; i++) {
            a = rand();
            a = a % 51;      // 0~50までの乱数を生成
            printf("%3d ", a);
      }

}