2009 年度「計算数学1」
前期月曜日2限(10 時 30 分から 12 時 00 分まで)です。
内容は先学期の「計算機基礎論3B」の続きです。
そのため、セクションや課題の番号は前からの続きになっています。
- 2009 年 04 月 13 日(月曜日) (1) 準備、再帰 (§50-52)
- 「ハノイの塔」のプログラムです。最初の二つは授業でやった範囲のC言語の知識で理解できるはずです。
- (52.2) の x の n 乗を求める関数では、x は 0 ではないとしてください。
そうでないと、00 はいくつか、という問題が発生しますので。
- 2009 年 04 月 20 日(月曜日) (2) クイックソート (§53-55)
[課題5]
- 2009 年 04 月 27 日(月曜日) (3) 続き
- 2009 年 05 月 04 日(月曜日) 国民の祝日につき授業なし
- 2009 年 05 月 11 日(月曜日) (4) マージソート (§56-57)
[課題6]
- 2009 年 05 月 18 日(月曜日) (5) 続き
- 2009 年 05 月 25 日(月曜日) (6) ソートのまとめ、
乱数を利用したプログラム、画面制御エスケープシーケンス、“裏”端末、多重配列。(§58-63)
- ランダムウォークのプログラム randomwalk.c,
一人で遊ぶポーカーのプログラム poker.c
- 後者で、数とカードとの対応はこれが「昔ながら」と書いたのは、間違いでした。
昔ながらのやり方は、0 から順に、スペードの A, ハートの A, クラブの A, ダイヤモンドの A, スペードの 2, ...
と対応させます。すると、3 と「ビットごとの AND」をとることでスートが、
右に 2 だけシフトすることでランクが得られるので、割り算がいらず、速いのでした。
いまはコンピュータが速いので全く問題ありませんが。
以下のポーカーのプログラムの説明も、同様に間違っています。
(2009-07-06 記す)
- 二次元ランダムウォークのプログラム randomwalk2.c
- 上の poker.c の役と倍率の関係は「ドラゴンクエスト IV」のカジノを参考にしましたが、
ワンペアを0倍から1倍に変更してあります。
- 2009 年 06 月 01 日(月曜日) (7) 二分探索 (§64-65)
[課題7]
- 一人で遊ぶポーカーのプログラム(ジョーカー入り)poker2.c
- 今回のレポートに貼り付ける出力例は、(65.3) のサンプルから配列の表示のみを除いたもの、としてください。
- 2009 年 06 月 08 日(月曜日) (8) 続き
- 一人で遊ぶポーカーのプログラム(ジョーカー入り、大きな表示)poker3.c
(授業終了後、一部変更しました。)
- 2009 年 06 月 15 日(月曜日) (9) “数字列”検索で文字列検索を学ぶ (§66-68)
[課題8]
- 2009 年 06 月 22 日(月曜日) (10) 続き
- 2009 年 06 月 29 日(月曜日) (11) ゲームの必勝法(三山崩し)(§69-70)
- GNOME 端末で「編集」「現在のプロファイル」「スクロール」として、「スクロールバックのサイズ」を 1002 以上にしておいてください。
- 2009 年 07 月 06 日(月曜日) (12) ビットごとの演算子 (§71-72)
- ○×ゲーム(三目並べ、tic tac toe)ttt.c
(必勝法をファイルに収めるには、「./a.out > ファイル名」とします。
ただし、その名前のファイルが既にある場合は上書きされます。
なお、2009-09-12 に、コメントの一部を変更しました。)
- 2009 年 07 月 13 日(月曜日) (13) ゲームの必勝法(仮称:「ゲーム 31」)(§73)
- 2009 年 07 月 27 日(月曜日) (14) 八人の女王 (§74-75)
- 2009 年 07 月 30 日(木曜日) (15) 予定のところまで終わったので授業なし
付録1
もしも、金沢大学総合メディア基盤センターの(2009 年度現在の)別のアカウントで、
linux の emacs をこの授業のときと同じように動くよう設定したかったら、
次の三つのファイルを、ダウンロードして保存(やり方は後述)してください。
(授業中に poker.c などをコピーした際は、リンク先のページを開いて、
ブラウザの画面から emacs の画面に copy & paste しましたが、
いまは emacs の設定ファイルがない状態でそれらを入手しようとしているので、
emacs の動作が授業のときと全く同一ではありません。
よって、ダウンロードして保存する方法を使ってください。)
センターの linux の Mozilla でダウンロードして保存する方法は、次の通りです。
- リンクになっている部分(下線部)を右クリック、
- 「リンク先を名前を付けて保存」、
- 「保存」をクリック、
- ダウンロードマネージャのウィンドウを閉じる。
なお、
これらのファイルは、いろいろな方からいただいたものを元にしています。
それらの方々に感謝します。
付録2
トランプゲーム gap.c です。
授業中に紹介した、上の poker.c などでは、
数とカードの対応を、伝統的な対応法にしたつもりでしたが、間違っていました。
そのため、伝統的な対応法で別のゲームを書いてみたものです。
付録3
ポーカーゲームでのジョーカーの図柄です。
岩瀬順一