report1-1.c (※右クリックで保存) は選択ソートによりデータの並べ替えを行い,その実行時間を測定するプログラムである.【提出物:2点】
ただし,肝心の選択ソート実行部分(関数 selection_sort)は未完成になっている.
これを完成させ,ソースプログラム(.c ファイル)をメールで提出しなさい.あわせて,作成したプログラムを用いてさまざまなデータで測定実験を行い,
選択ソートの平均計算量と最悪計算量がであることを確認しなさい.
そして,確認内容を A4 用紙 1 枚にレポートとしてまとめて提出しなさい.
件名(subject)には,学年・番号・氏名・課題名を書くこと:
(例)2 年生 99 番 愛大 太郎が課題 1-1 を提出する場合
2/99/愛大 太郎/1-1
必ずこちらからの返事を確認すること. 明らかな誤りがある場合,そのままだと0点になるので再提出を指示することがあります.
report1-2.c (※右クリックで保存) はマージソートによりデータの並べ替えを行い,その実行時間を測定するプログラムである.【提出物:2点】マージソートでは,データ数が 2 以下になるまでデータ列を分割する.
しかし,あまり細かいところまで分割すると再帰呼出しの回数も増大してしまい実行速度の低下が懸念される.
そこで 「データ数がある程度小さくなったところで選択ソートに切り替える」 という融合アルゴリズムを考える.
例えばデータ数が 1000 未満になったら マージソートの再帰呼び出しを行う代わりに選択ソートを実行するというかたちである.作成したプログラムを用いてさまざまなデータで測定実験を行い, 実行速度の向上を確認しなさい.
そして,確認内容を A4 用紙 1 枚にレポートとしてまとめて提出しなさい.
件名(subject)には,学年・番号・氏名・課題名を書くこと:
(例)2 年生 99 番 愛大 太郎が課題 1-2 を提出する場合
2/99/愛大 太郎/1-2
必ずこちらからの返事を確認すること. 明らかな誤りがある場合,そのままだと0点になるので再提出を指示することがあります.
report2-1.c (※右クリックで保存) は 3x3 のゲーム盤で○×を交互に描き, 先に縦・横・斜めのいずれかを揃えた方が勝ちという簡単なゲームプログラムである.【提出物】
(※表示の都合上,○ として @ を,× として X を用いている)現時点で一通りゲームを実行できるが,「待った」をかけることができない.
※「待った」をかけると,直前のコンピュータの手と自分の手をそれぞれ一手ずつ 「無かったもの」としてやり直しできる.
つまり,直前の自分の番の状態まで戻すという機能である.また,ゲーム終了時点で「お互いにどういう手を打ったか」という履歴も表示させたい(下の例を参照)がその機能も実装できていない.
(履歴の表示例)
3 に○
5 に×
2 に○
9 に×
1 に○上のプログラムを完成させなさい.
プログラム中には「この部分は自分で作ること」という部分が 3 箇所用意されている.
その他の部分も自由に改変してよい.
※スタックの実装については情報工学実験 I の資料を参照のこと
件名(subject)には,学年・番号・氏名・課題名を書くこと:
(例)2 年生 99 番 愛大 太郎が課題 2-1 を提出する場合
2/99/愛大 太郎/2-1
必ずこちらからの返事を確認すること. 明らかな誤りがある場合,そのままだと0点になるので再提出を指示することがあります.
課題 2-1 のプログラムにおいて, コンピュータは次の一手をランダムに決めている.【提出物】
これを自分なりに工夫して,コンピュータがより賢く次の一手を打つように強化しなさい.※課題 2-1 の機能も実装すること.
件名(subject)には,学年・番号・氏名・課題名を書くこと:
(例)2 年生 99 番 愛大 太郎が課題 2-2 を提出する場合
2/99/愛大 太郎/2-2
必ずこちらからの返事を確認すること. 明らかな誤りがある場合,そのままだと0点になるので再提出を指示することがあります.