乱数の生成 - srand関数
当ページのリンクには広告が含まれています。
スポンサーリンク
ここではC言語のsrand関数を使って、乱数を生成する方法を紹介します。
前の記事ではrand関数を使った乱数の生成方法をみていきましたが、rand関数をそのまま使うと、プログラムを何度動かしても同じ乱数しか発生できない……という問題点があります。
srand関数は引数に適当な値を渡すことで(乱数の種が初期化され)、ランダムなセットの乱数を発生(乱数の発生にはrand関数を使う)することができるようになるので、使い方を覚えておきましょう。
srand関数
srand関数の利用には「stdlib.h」というヘッダーファイルを読み込む必要があります。
#include<stdlib.h>
ここではsrand関数に渡す引数とtime関数で取得した現在時刻を使います。
srand(time(NULL))
srand関数に適当な値を指定することで乱数の種が初期化されるので、プログラム実行毎にランダムなセットの乱数を発生(乱数の発生にはrand関数を使う)することができます。
srand関数で乱数の種を初期化した後、rand関数で乱数を発生させます。
それでは実際に srand関数を使ってみましょう。
サンプルプログラム
srand関数で乱数の種を初期化し、rand関数を使って乱数を3つ表示するサンプルプログラムです。
#include <stdio.h> #include <stdlib.h> int main(void){ int i; /* 乱数を生成 */ printf("◆ 3つの乱数を生成\n"); for(i=0;i<3;i++) printf("%dつ目の乱数 = %d\n", i+1, rand()); /* 乱数の最大値を表示 */ i = RAND_MAX; printf("\n◆ 乱数の最大値を表示\n"); printf("RAND_MAX = %d\n", i); return 0; }
いくつかの実行結果です。
◆ 3つの乱数を生成 1つ目の乱数 = 1614695716 2つ目の乱数 = 440051673 3つ目の乱数 = 14787843
◆ 3つの乱数を生成 1つ目の乱数 = 1614729330 2つ目の乱数 = 1005002171 3つ目の乱数 = 1112604342
◆ 3つの乱数を生成 1つ目の乱数 = 1614796558 2つ目の乱数 = 2134903167 3つ目の乱数 = 1160753693
このように3つの乱数が出力されます。
プログラム実行毎にランダムな乱数のセットを取得することができていますね。