[ 高橋のページ ] [ プログラミングおよび実習II ]
例えば数当てゲームのプログラムを作るとしたら…
というような手順になるでしょう. 今回は,1.で考えているようなでたらめな数(乱数)をC言語で作り出す方法を取り上げます.ただし,でたらめな数といってもまったくのでたらめというわけではなく,例えば「0から99までの整数」というように何らかのルールに則ったもののことです.
というわけでいきなりですが次のプログラムを作って実行してみましょう.
このプログラムを実行すると,0から19までの整数が10個表示されます. 以下のようなことをして結果がどうなるか観察してみましょう.
ここで登場した二つの関数 rand() と srand() は,次のようなものです
上記のように,rand()が生成する値は漸化式によって次々計算されるものですから,真の意味での乱数ではなく,「疑似乱数」と呼ばれています.
ちなみに,rand()が生成する疑似乱数の最大値は,stdlib.h 中で RAND_MAX として定義されています.したがって,
double x; x = (double)rand() / RAND_MAX;
とかやると,xにはdouble型で0から1までの疑似乱数を代入することができます.
種と個数を入力したら,その個数分の疑似乱数を出力するプログラム random.c を作成しましょう. ただし,以下のことに注意して下さい.
適当な種や個数で正しく動作することを確認したら,次に以下のようにしてみましょう
$ ./random | ./selectionsortこのようにすると,randomの出力がパイプを通してselectionsortに渡されます(パイプについては,課題1027-Cに少し解説があります).
menuコマンドから,数当てゲームを実行できます.これと同じようなゲームのプログラムを作ってみましょう.