平成24年度秋季 基本情報技術者試験(FE)の午後問題9は、
- 複数本のくじのくじ番号を当選番号と比較し、当たりを確認するプログラム
に関する問題でした。
プログラム例(h24a_fe_pm9.c)
設問1までの内容(前後賞なし)でプログラムを作成しました。buy_lots関数で必要な枚数、乱数を用いてくじを準備します。
実行結果
20枚くじを購入した結果が以下です。中々、当たりませんね(経験上知っていますが…)。
$ gcc h24a_fe_pm9.c && ./a.out くじを何枚買いますか? > 20 955991 694766 540531 590750 863647 944722 098313 644078 118326 471992 381709 698572 333061 792759 639997 411007 494435 058226 205652 381759 1等 0枚 2等 0枚 3等 0枚 4等 0枚 5等 0枚 6等 1枚
演習
面白い教材なので色々と学習に使えそうです。
設問2(前後賞バージョン)の機能を追加してみる。
buy_lots関数でくじの購入手続きをシミュレーションしていますが、くじを発行する度に番号の重複をチェックした方がいいかもしれません。
くじの購入金額、等級ごとの賞金を設定して期待値などを求めてみる。
その他何かあれば、コメントをお願いします。