データ構造とアルゴリズム論 第7章 再帰処理 平成16年11月30日 森田 彦.

Slides:



Advertisements
Similar presentations
プログラミング 平成24年1月11日 森田 彦.
Advertisements

プログラミング 平成25年10月29日 森田 彦.
プログラミング 平成22年10月20日 森田 彦.
プログラミング 平成24年10月16日 森田 彦.
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
プログラミング 平成25年12月3日 森田 彦.
プログラミング 平成25年11月19日 森田 彦.
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
データ構造とアルゴリズム論 第5章 レコード構造を使った処理-クラスの利用
プログラミング 平成24年10月23日 森田 彦.
プログラミング 平成23年10月19日 森田 彦.
CGプログラミング論 平成28年6月1日 森田 彦.
データ構造とアルゴリズム論 第4章 レコード構造を使った処理-クラスの利用
データ構造とアルゴリズム論 第9章 木構造 平成16年12月21日 森田 彦.
情報数理Ⅱ 平成27年9月30日 森田 彦.
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
CGプログラミング論 平成28年4月27日 森田 彦.
データ構造とアルゴリズム論 第2章 配列(構造)を使った処理
プログラミング 平成25年12月10日 森田 彦.
ネットワークプログラミング論 平成28年12月12日 森田 彦.
プログラミング 平成24年10月30日 森田 彦.
プログラミング 平成23年10月5日 森田 彦.
データ構造とアルゴリズム論 第7章 探索のアルゴリズム
データ構造とアルゴリズム論 第9章 木構造 平成17年12月20日 森田 彦.
データ構造とアルゴリズム論 第2回目テスト 平成15年12月9日 森田 彦.
データ構造とアルゴリズム論 第8章 再帰処理 平成15年12月2日 森田 彦.
プログラミング 平成25年11月5日 森田 彦.
データ構造と アルゴリズム論 平成29年9月27日 森田 彦.
ネットワークプログラミング論 平成28年12月26日 森田 彦.
CGプログラミング論 平成28年6月8日 森田 彦.
プログラミング 平成22年11月24日 森田 彦.
プログラミング 平成23年12月21日 森田 彦.
データ構造とアルゴリズム論 第4章 レコード構造を使った処理-クラスの利用
データ構造とアルゴリズム論 第3章 ファイルを用いたデータ入出力2
データ構造とアルゴリズム論 第3章 ファイルを用いたデータ入出力
データ構造とアルゴリズム論 終章 専門科目におけるプログラミング
データ構造とアルゴリズム論 第7章 再帰処理 平成17年12月6日 森田 彦.
データ構造とアルゴリズム論 第6章 整列(ソート)のアルゴリズム
データ構造とアルゴリズム論 第1章 アルゴリズムの表現-流れ図
プログラミングⅠ 平成30年10月29日 森田 彦.
ネットワークプログラミング論 平成28年12月19日 森田 彦.
データ構造とアルゴリズム論 第9章 木構造 平成29年12月20日 森田 彦.
データ構造とアルゴリズム論 第9章 木構造 平成30年6月27日 森田 彦.
データ構造とアルゴリズム論 第2回目テスト 平成16年12月14日 森田 彦.
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
データ構造とアルゴリズム論 第4章 レコード構造を使った処理-クラスの利用
プログラミングⅠ 平成30年10月15日 森田 彦.
ソフトウェア制作論 平成30年10月10日.
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
プログラミングⅠ 平成30年10月22日 森田 彦.
プログラミングⅠ 平成31年1月7日 森田 彦.
プログラミング 平成22年12月15日 森田 彦.
データ構造とアルゴリズム論 第4章 レコード構造を使った処理-クラスの利用
プログラミング 平成24年11月13日 森田 彦.
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
プログラミング 平成24年10月9日 森田 彦.
CGプログラミング論 平成28年7月6日 森田 彦.
情報数理Ⅱ 平成28年9月21日 森田 彦.
データ構造とアルゴリズム論 第9章 連結リスト
CGプログラミング論 平成28年6月29日 森田 彦.
プログラミング 平成24年12月11日 森田 彦.
関数と再帰 教科書13章 電子1(木曜クラス) 2005/06/22(Thu.).
第10回 関数と再帰.
ソフトウェア制作論 平成30年10月17日.
プログラミング 平成28年10月25日 森田 彦.
CGプログラミング論 平成28年5月11日 森田 彦.
岩村雅一 知能情報工学演習I 第13回(後半第7回) 岩村雅一
プログラミング 平成28年10月18日 森田 彦.
Presentation transcript:

データ構造とアルゴリズム論 第7章 再帰処理 平成16年11月30日 森田 彦

基礎課題提出状況(11/16) 平均提出数=32.7 (全課題数37) 56%が全課題を提出 21名(15.6%) このままでは危険! 平均提出数=32.7 (全課題数37) 56%が全課題を提出 21名(15.6%) このままでは危険! 62.2%が36題以上を提出

応用課題提出状況(11/16) 平均提出課題数=13.5 / 25 全課題提出は3名 13題以上提出は約63%

再帰とは? 自身の定義(の一部)に自身を含むこと。 日常的な例 鏡を持って鏡に向かった場合→鏡の中に鏡が映る・・・鏡の列が続く  鏡を持って鏡に向かった場合→鏡の中に鏡が映る・・・鏡の列が続く プログラムの世界では  メソッドの再帰的呼び出し、あるいはデータ構造の再帰的定義に用いられる。

本章(本日)の学習のねらい メソッドの再帰的定義(呼び出し)の例を学習する。→“再帰”の概念を理解する。 再帰処理の応用例としてフラクタル図形の描画を学習する。

7-1 再帰処理 例:階乗の計算 5!=5×4×3×2×1 一般的には・・・ n!=n×(n-1)×(n-2)×・・・×2×1 7-1 再帰処理 例:階乗の計算  5!=5×4×3×2×1   一般的には・・・  n!=n×(n-1)×(n-2)×・・・×2×1   これを書き直すと・・・  n!=n×(n-1)!   → 再帰的定義 プログラムで表現するためにn!を計算するメソッドFact(n)を定義 階乗:factorial → Fact(n)=n×Fact(n-1)

n!の計算(メソッドの再帰的定義による) 終了条件が必要! メソッド呼び出しの連鎖→p.112参照 Fact(n) n≧2 X ←n*Fact(n-1) Xの値を返す 戻る X ←1 No Yes 開始 nの入力 Ans ←Fact(n) Ansの表示 終了 メソッドの呼び出し 値を返す 終了条件が必要! メソッド呼び出しの連鎖→p.112参照 プログラムの作成→【基礎課題7-1 】(p.113)

【基礎課題7-2】-コラッツの予想 コラッツ(Collatz)の予想 ある数字が偶数なら2で割る 奇数なら3倍して1を加える という操作を繰り返すと必ず1になる。 例:5→16→8→4→2→1 <課題の内容>  コラッツの操作を再帰的に繰り返すことで、上の予想を実際に確かめるプログラムを作成する。

7-2 再帰処理の応用 フラクタル図形 どの一部をとっても全体と同じパターン(形)になっている図形 7-2 再帰処理の応用 フラクタル図形  どの一部をとっても全体と同じパターン(形)になっている図形 コッホ(Koch)曲線→【応用課題7-A】 (p.119) 植物(!?) → 【応用課題7-B】(p.123)

今後の予定 11/30 第7章 再帰処理 12/7 第8章 連結リスト 12/14 第2回目テスト(13:15~14:15) 11/30 第7章 再帰処理 12/7 第8章 連結リスト 12/14 第2回目テスト(13:15~14:15)      ★範囲は8章まで      ★実施要領は第1回目と同様 12/21 第9章 木構造(応用課題のみ) 1/11 今後の(プログラミング関連)学習ガイダンス & 課題チェック 基礎課題未了で途中退出した学生は早退とみまします。

鏡の中の鏡 ずっと際限なく鏡の列が続く。 「鏡に映す」という操作の再帰的呼び出しの例