平成23年度 情報工学演習B(夜間主) †
担当者 †
- 担当:倉重(V407),松本,三林
- 担当TA:澁谷(V407)
演習について †
- 演習の場所
- 演習の進め方
- 詳しくはガイダンス資料を見てください.
- 演習ですので欠席はしないでください.毎回出欠を取ります.もし,欠席せざるを得ない場合,その理由と関係書類を提出してください.
- 質問等
- 演習やレポート課題の内容,プログラミング方法についての疑問は,倉重まで質問に来て下さい.
レポートについて †
- レポートの書き方の説明および雛形として次のtexファイルを用いること.
- 上記texファイルをダウンロードし,解凍する.
- tar xvf report_sample.tar
- 解凍してできたファイルを用いて以下のコマンドでpdfファイルを作成する.作成したpdfファイルを開くことで,レポートの書き方等を書いた資料を読むことができる.
- platex sample.tex
- platex sample.tex
- 二回行うこと
- エラーなく,sample.dviが作成されていることを確認
- dvipdfmx sample.dvi
- evince sample.pdf
- レポートの作成は,上記ファイルを改変し,作成すること.このとき,同じようにpdfファイルを作成し,期日までに提出すること.
レポート作成上の注意 †
最終レポート提出期限 †
出欠席表等 †
演習スケジュール †
回数 | 演習日 | 内容 | 資料 | 演習課題 |
1 | 6/6(月) | ガイダンス |
| 3.1:コマンド・入力・結果を記述すること |
2 | 6/8(水) | 基礎文法 |
| 4.4:作成したプログラム・実行コマンド・入力・結果を記述すること |
3 | 6/13(月) | 条件分岐 |
| 2.6.2:作成したプログラム・実行コマンド・入力・結果を記述すること |
4 | 6/15(水) | 反復 |
| 2.6.2:作成したプログラム・実行コマンド・入力・結果を記述すること.試行回数は10回で. |
5 | 6/20(月) | 配列(1) |
| 2.4:作成したプログラム・実行コマンド・入力・結果を記述すること |
6 | 6/22(水) | 配列(2) | | 2.6.1:作成したプログラム・実行コマンド・入力・結果を記述すること |
7 | 6/27(月) | ポインタ(1) |
| 3.3:作成したプログラム・実行コマンド・入力・結果を記述すること |
8 | 6/29(水) | ポインタ(2) | | 3.5:作成したプログラム・実行コマンド・入力・結果を記述すること |
9 | 7/4(月) | 関数(1) |
| 4.4:作成したプログラム・実行コマンド・入力・結果を記述すること |
10 | 7/6(水) | 関数(2) | | 4.5.2:作成したプログラム・実行コマンド・入力・結果を記述すること |
11 | 7/11(月) | 構造体 |
| 2.6.1:作成したプログラム・実行コマンド・入力・結果を記述すること.注意!!配布資料に重大な修正あり.一度,struct.pdfを見てください(修正箇所は教員,TAに聞いてください) |
12 | 7/13(水) | 文字列処理 |
| 2.4:作成したプログラム・実行コマンド・入力・結果を記述すること |
13 | 7/20(水) | 総合演習 | | N本腕バンディットを解くプログラムの作成(ガイダンス資料参考・教員/TAに教えてもらう) |
14 | 7/25(月) | 総合演習 | | N本腕バンディットを解くプログラムの作成(ガイダンス資料参考・教員/TAに教えてもらう) |
15 | 7/27(水) | 総合演習 | | レポート:作成したplayer.c・どのように作成したか・実行結果を記述 |
- 注意
- どのバンディットをプレイしているか分かるように,コンパイル時のコマンドもレポートに記述しておくこと
- 例:gcc -o game player.c bandit03.o であるなら,バンディット03を実行してることがわかる
N本腕バンディット †
N本腕バンディットとは †
本演習で用意するN本腕バンディットの一覧 †
- 注意
- テストプレイは,該当ファイルをダウンロード後に「chmod +x ファイル名」が必要
N本腕バンディット・オブジェクトファイルの使用方法 †
N本腕バンディットプレーヤー創作(総合演習) †
N本腕バンディットを解くプレーヤーを作成したときに,他と比較・競うために †
スコア(演習の成績とは関係なし) †
学生番号 | 氏名 | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | Total Max | | | | | |
1000000 | ランダム? | 10000 | 5237 | 17362 | 7180 | 23022 | 1112 | 916 | 5836 | 6126 | 74746.5 | | | | | |
TAの | 学生さん | 9421 | 6747 | 22700 | 6780 | 22789 | 1126 | 1157 | 5800 | 8842 | 84695.0 | | | | | |
2033003 | 遠藤 逸平 | 10000 | 2671 | 20347.5 | 5212 | 22887 | 1113 | 915 | 5834 | 5178 | 73770.5 | | | | | |
2134001 | 井川 大地 | | | | | | | | | | | | | | | |
2134002 | 伊藤 仁 | | | | | | | | | | | | | | | |
2134003 | 長内 智弥 | | | | | | | | | | | | | | | |
2134004 | 郷田 ジャン | | | | | | | | | | | | | | | |
2134005 | 小林 和彦 | | | | | | | | | | | | | | | |
2134006 | 櫻澤 昂 | | | | | | | | | | | | | | | |
2134007 | 佐々木 貴大 | | | | | | | | | | | | | | | |
2134008 | 四戸 基陽 | 7848 | 4438 | 19915 | 5378 | 20231 | 1118 | 1030 | 5647 | 6882 | 71915.0 | | | | | |
2134009 | 首藤 航 | | | | | | | | | | | | | | | |
2134010 | 小路 哲司 | | | | | | | | | | | | | | | |
2134011 | 鈴木 悠平 | 10000 | 2640 | 20342.5 | 5158 | 22875 | 1126 | 915 | 5783 | 5167 | 73564.0 | | | | | |
2134012 | 鈴木 僚 | 10000 | 2685 | 20412.5 | 7189 | 23070 | 1124 | 916 | 5822 | 5224 | 75592.5 | | | | | |
2134013 | 須藤 大樹 | 10000 | 4943 | 21866.5 | 7142 | 22560 | 1123 | 916 | 5816 | 5212 | 77942.0 | | | | | |
2134014 | 高橋 健人 | | | | | | | | | | | | | | | |
2134015 | 高橋 尚人 | | | | | | | | | | | | | | | |
2134016 | 谷内 和人 | | | | | | | | | | | | | | | |
2134017 | 寺川 栄次 | | | | | | | | | | | | | | | |
2134018 | 中野 啓佑 | | | | | | | | | | | | | | | |
2134019 | 西村 浩二 | 8139 | 2645 | 20375 | 5162 | 22920 | 1106 | 959 | 5818 | 6179 | 69578.5 | | | | | |
2134021 | 宮崎 輝久 | | | | | | | | | | | | | | | |
2134022 | 女ケ沢 大亮 | 10000 | 7155 | 22905 | 7128 | 22971 | 1116 | 2315 | 5275 | 9101 | 86088.0 | | | | | |
2134023 | 山本 雄太 | | | | | | | | | | | | | | | |
2134024 | 米内 寛貴 | | | | | | | | | | | | | | | |
2134201 | 三坂 裕里枝 | | | | | | | | | | | | | | | |
日本語が出なくなったときの対応 †
- コンピュータで扱える日本語はいくつかあるが,ターミナルはEucという文字しか表示できない.プログラムの中でEuc以外の日本語を使用すると表示されなかったり読めない文字が出てきたりする.その場合,以下の方法でプログラム中の日本語をEucにする.
- Emacsで以下のコマンドを打つ
- ctrl-x (Controlキーを押しながらxを打つ)
- return
- f
- すると以下のメッセージ
- Coding system for saving file (default nil):
- が出るので,続いて以下の文字を打ってreturnキーを押す
- プログラムを保存して完了
乱数の使い方 †
- 乱数の使い方
- banditの中で簡単に使う方法.ちゃんとした使い方は各自調べた方がよい
- 0.3の確率で何か(ランダム)をして、0.7の確率で何か(ちゃんと)をする、のような使い方
double r = (double) rand() / (double)RAND_MAX;
if( r <= 0.3){
なにか(ランダム)
}else{
なにか(ちゃんと)
}
- rand()は0からRAND_MAX(と定義されている整数)の間のランダムな数を出力する。なので、
- で、0から1の間のランダムな数となる。よって、これが(上記の例だと)0.3より小さい数である、と考えるのは0.3の確率で生じる、というのと同じことである。
int r = rand() % 5;
switch(r){
case 0:
break;
case 1:
...
}
- rand() % 5 とやると5で割ったあまりの数(0から4)が得られる。ここで、rand()はランダムな整数なので、ランダムな0から4までの値を得ることができる。