乱数

乱数とは,さいころを振ったときに出るような,でたらめな数のことです。

C や C++ で乱数を発生する関数は rand() です。 これは 0 以上 RAND_MAX 以下の整数の乱数を発生します。 あらかじめ srand() という関数を使って初期化します。 初期化のパラメータとしては,たとえば1970年元旦からの秒数 time(0) や,プロセス番号(UNIX で起動したプログラムに与えられる連番)getpid() を使うのが便利です。

次のプログラムは時刻とプロセス番号の和で乱数を初期化しています。

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <unistd.h>
using namespace std;

int main()
{
    cout << "Content-type: text/html\n\n";
    srand(time(0) + getpid());
    int x = rand();
    if (x % 3 == 0) {
        cout << "ぐう\n";
    } else if (x % 3 == 1) {
        cout << "ちょき\n";
    } else {
        cout << "ぱー\n";
    }
}

#include <cstdlib>rand()srand() を使うための準備, #include <unistd.h>getpid() を使うための準備です。


リンクはご自由にどうぞ。

松阪大学 奥村晴彦 okumura@matsusaka-u.ac.jp

Last modified: Sun Nov 14 11:24:41 JST 1999