• ベストアンサー

再帰について

ymmasayanの回答

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.2

一長一短があると言うことを説明したいので例えを使います。 鶴亀算を解くのに小学生なら鶴亀算の方がよくわかります。 しかし、高校生なら、2元1次方程式の方が理解しやすいでしょう。 再帰も初心者にとっては、はなはだ難しいですし、トリッキーですが、論理的に整然としていますので、ベテランにとっては、プログラムが短くて、わかりやすいでしょう。 計算にかかる手間は、おそらく再帰の方がかかっているのでしょうね。 ただ、注意しないといけないのは、再帰で解かなくても解ける問題を、無理矢理、再帰で解いて見せている例が多いことです。検証がし易いからと言う理由は判るのですが、本当に再帰でないと解くのが難しい問題(ハノイの塔など)をもっとPRすべきなのでしょうね。バイナリーソートなども、再帰を使うととても短いステップで書けますね。

janne
質問者

お礼

どうもありがとうございました

関連するQ&A

  • javaの再帰呼びについてお願いします。

    javaで nPn ,nCn 組み合わせ計算プログラムを 再帰呼びを使って 作成しようとしてますがとうやって書けばいいかわかりません。 初心者なんでわかりやすいコメントで お願いいたします

  • 再帰呼び出しを使いますか?

    趣味でプログラムをかじる程度なのですが、今まで自分はプログラムを作っていて再帰呼び出しを使ったことがありませんが、みなさんは良く使うのでしょうか? なかなか再帰呼び出しを考えるのが難しく自分のプログラムで適用すると良いところなど思い浮かびません。 再帰呼び出しをすると何か利点とかあるのでしょうか? 再帰呼び出しで無いと作るのが難しいプログラムなど今までありましたか?あればどんな処理だったかなど教えてください。

  • 再帰呼びだし

    再帰呼びだし 問題1 再帰呼び出しを用いてint型の配列({-9、8、-7、6、5、4、1、3、6、9、2、-14})の最小値を求めて出力するプログラムを作成せよ。関数名はmin_of_arrayとする。 問題2 同じく再帰呼び出しを用いてint型の配列({3、4、1、5、2})を小さい方から順番に求めて出力するプログラムを作成せよ。 再帰呼び出しが苦手で、じっくり解いていこうと思ったのですが、他の課題もあって、もう提出期限いっぱいいっぱいなので載せました。 どうかよろしくお願いします。

  • 再帰について

    一般的(?)に、フォルダ内にあるファイルをサブフォルダまで含めて表示するとき、再帰という方法を用いると思います。 フォルダのようなツリー構造の場合に、再帰を使わなくても表示できるプログラムは作れるのでしょうか? (BASIC等は再帰が使えないと聞いたのですが・・・) 考え方だけで良いので、アドバイスお願いします。

  • プログラム構造の「再帰的」について

    再帰的の説明に 「再帰的とは、あるプログラムがその内部から自分自身を呼び出して使用できる性質である。」「したがって再帰的であれば、必然的に再入可能でもある。」とありました。 ここで、「したがって再帰的であれば、必然的に再入可能でもある。」とは、つまり、プログラムAの中に再帰したプログラムA’が既に再入している状態にある、ということを表しているという理解かな?と思っているのですが、宜しいのでしょうか? より良い理解のために、補足説明などいただけたら、と思います。よろしくお願いいたします。

  • 再帰的処理について

    指定したURLのページのHTMLを取得しその中のリンクを再帰的に表示するプログラムを考えていますが再帰的な処理の部分がよく理解できません。教えて下さい。お願いします。

    • ベストアンサー
    • Perl
  • 再帰

    x=2のときの4次多項式 f(x) = 1x^4 + 2x^3 + 3x^2 + 4x + 5の解を ホーナー法、再帰を用いて計算せよ という問題(C言語)があるんですけど、よくわかりません。 ホーナー法を用いるということで、そこは自分で調べて (((1x+2)x+3)x+4)x+5となることはわかりました。 でもC言語で書けと言われてもどこをどう再帰で書けばいいのかわかりません。 わかる人だれか教えてください。お願いします。

  • 再帰アルゴリズム

    再帰アルゴリズムの練習のため問題に取り組んでいるのですが、問題集に解答がついておらずイマイチ理解できていないので教えていただけると助かります。 d個の毎インデックスで(0,0,...,0)から(n,n,...,n)まで反復させるアルゴリズムを反復アルゴリズムと再帰アルゴリズムの両方考えよ です。 (0,0,0,...,0) (1,0,0,...,0) (1,1,0,...,0) (1,1,.....,1) ... (n,n,.....,n) と表示を繰り返すプログラムでいいのかな、と思い反復の方は二十ループを用いてプログラムかけたんですが、再帰の法がアルゴリズムがどうも理解できていません。 ご教授願えればと思い、お願いします。

  • javaの再帰関数のフローチャート

    再帰プログラムを組むために、まずフローチャートを書こうと思ったのですが、再帰プログラムのフローチャートの書き方がわからなくなりました。 よかったら、わかりやすく回答よろしくお願いします!!

  • 再帰呼び出し

    C++のクラスで n!=n(n-1)(n-2)...1 n!を求めるprogramを作らなくてはならないのですが 再帰を使わずに、関数factorial(n)を使わないといけません。 ちんぷんかんぷんです。 for(counterとcounter--を使った)物しか思いうかびません。 関数factorial(n)を使うというのはnに戻るつまり再帰というふうには ならないのですか? 関数と再帰の意味を漠然としかわかっていないのですが。 よろしくお願いします。