Top / プログラミングおよび実習II / 20051124
[ 高橋のページ ] [ プログラミングおよび実習II? ] プログラミングおよび実習II 2005年11月24日[edit]今日のテーマ: 疑似乱数[edit]例えば数当てゲームのプログラムを作るとしたら…
というような手順になるでしょう. 今回は,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までの疑似乱数を代入することができます. 今日の課題[edit]課題1124-A (締切:11月24日)[edit]種と個数を入力したら,その個数分の疑似乱数を出力するプログラム random.c を作成しましょう. ただし,以下のことに注意して下さい.
適当な種や個数で正しく動作することを確認したら,次に以下のようにしてみましょう
課題1124-B (締切:11月24日,課題1124-Aを11月24日に提出した人のみ対象のボーナス課題)[edit]menuコマンド?から,数当てゲームを実行できます.これと同じようなゲームのプログラムを作ってみましょう. |