再帰的なアルゴリズムを勉強したいなあと思っているのですが、素人にとっては難しすぎて、どう手をつけていいか困っています。

当方、情報工学的な教育は受けていません。

そこで、高卒レベルで一から再帰的アルゴリズムを理解するのに適した本をご紹介くださいませ。
実際に、大学で使ったなどの経験者のご紹介だととても助かります。

よろしくお願いいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2007/02/07 10:56:36
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:b-wind No.3

回答回数3344ベストアンサー獲得回数440

ポイント30pt

プログラマの数学

プログラマの数学

  • 作者: 結城 浩
  • 出版社/メーカー: ソフトバンククリエイティブ
  • メディア: 単行本

これなんかいいんじゃないかなぁ。

内容もジャストだし、結城さんの本は分かりやすい事でも定評があります。

id:sharia

おおお!

ありがとうございます!

結城さんがお書きになられているのですね。

さっそく即買いで勉強させていただきます。

2007/02/02 15:21:00

その他の回答3件)

id:castiron No.1

回答回数418ベストアンサー獲得回数30

ポイント20pt

正直情報系の話しって別に中学生でも分かるものばかりだと私は思います。(そんな難しいことやらないのなら)

再帰的アルゴリズムについては取っつきにくいけどなんの本でも良いから(当たり前だけど再帰的表現のできる言語ね)再帰的アルゴリズムを実装したプログラムを何も考えずに打ち込んでところどこで値を表示できるようにします。次にそれぞれの変数がどのように変化するかを紙の上でプログラムを読みながら書きます。(プログラムが実行される順番通りに書けば良いだけです)

これと先ほど出力してある値とを比較すると再帰的アルゴリズムが分かってくるのではないでしょうか?

紙で書くときに例えばnの階乗を再帰的に計算する関数があったとして

変数がn,再帰的処理をする関数をf(n)=n*f(n-1)(f(1)のとき1を返す)とすると

n=3のとき

n=3 nが1ではないf(3)=3*f(2)

       n=2nが1ではない f(2)=2*f(1)

                         n=1 nが1である f(1)=1

ここまでやれば(ずらして書くとわかりやすい)それぞれの関数の返値を計算してやります。

f(1)=1

f(2)=2*f(1)=2*1=2

f(3)=3*f(2)=3*2=6

という具合になります。このような手順をハノイの塔とかでやってみるともっとよく分かると思います。

http://ews2.cc.niigata-u.ac.jp/~takeuchi/tbasic/BackGround/Hanoi...

(階乗を計算するのと条件や変数、引数が違うだけ)

独習C

独習C

  • 作者: ハーバート シルト 柏原 正三
  • 出版社/メーカー: 翔泳社
  • メディア: 単行本

id:sharia

ありがとうございます。

ちなみに当方はphpです<へぼい・・・(笑)

URLを参照にやってみたいと思います。

phpですと、各ステップごとにechoしていくのがおそらくよいのですね。

ただできれば数学的な知識も根本から抑えておきたいと思っているのです・・・。

2007/02/02 13:40:00
id:Baku7770 No.2

回答回数2832ベストアンサー獲得回数181

ポイント20pt

Lisp入門―システムとプログラミング (コンピュータサイエンス大学講座)

Lisp入門―システムとプログラミング (コンピュータサイエンス大学講座)

  • 作者: 中西 正和
  • 出版社/メーカー: 近代科学社
  • メディア:

 

 PHPとコメントされていましたがリカーシブについて語るなら中西正和さんの「LISP入門」は一読されると良いでしょう。

 

 中西さんは既に亡くなられていますが、アッカーマン関数の最少行数Fortranプログラムでも有名な方です。

id:sharia

ありがとうございます。

ううう・・・、再帰のアルゴリズムを本気でやり始めると、スクリプト言語レベルではうまくいかなそうなのが、わかってきました・・・。

ご紹介いただいた該当書はレア本になっているようなのが残念なのですが、探して読んでみたいと思います。

2007/02/02 15:18:59
id:b-wind No.3

回答回数3344ベストアンサー獲得回数440ここでベストアンサー

ポイント30pt

プログラマの数学

プログラマの数学

  • 作者: 結城 浩
  • 出版社/メーカー: ソフトバンククリエイティブ
  • メディア: 単行本

これなんかいいんじゃないかなぁ。

内容もジャストだし、結城さんの本は分かりやすい事でも定評があります。

id:sharia

おおお!

ありがとうございます!

結城さんがお書きになられているのですね。

さっそく即買いで勉強させていただきます。

2007/02/02 15:21:00
id:sadajo No.4

回答回数4919ベストアンサー獲得回数49

id:sharia

ありがとうございます。

このレベルになると、魔法の呪文を聴いている気分になってきます・・・(<数学センスなさ杉・・・)。

こういった資料がさくっと読めるようになりたいのです。

2007/02/02 23:22:20
  • id:salic
    書籍じゃ無いけど
    http://www.momo.dyndns.org/~katsu/algorithm/algorithm04.htm
    ソートのプログラムでも作ってみたら如何でしょうか?
  • id:sharia
    ありがとうございます。
    参考にいたします。

    ちなみに、当方、グラフ構造解析に再帰アルゴリズムを使用したいと思っています。よく見るアルゴリズムでは、経路検索のアルゴリズムが近いかと思います。
  • id:robbie21
    Cパズルプログラミング-再帰編
    ということで、言語はCですけど、順を追って説明してくれているので、わかりやすいかも。
    http://karetta.jp/book/cpuzzle-recursion
  • id:sharia
    ありがとうございます!
    すさまじく熱意のある方ですね。
    大切に読ませていただきます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません