問題 No.2319
一つの関数定義の中で、自分自身を呼び出す表現が複数回含まれており、例えば木の走査やフィボナッチ数列の計算などで見られる再帰呼び出しの方式を指す用語はどれか。
【正解の解説】
多重再帰呼び出し
まるで1人の上司が2人の部下にそれぞれ仕事を指示し、その部下がさらに2人に…と枝分かれしていく「伝言ゲームのネットワーク」のような仕組みです。フィボナッチ数列のように、過去の複数の計算結果を組み合わせて次に進む場面で大活躍します。
スポンサーリンク
【その他の選択肢の解説】
相互再帰呼び出し
自分自身をその場で直接呼び出すのではなく、別の関数を挟んで間接的に呼び戻す点が多重再帰との決定的な違いです。AさんとBさんがお互いを指し示して会話しているような状態をイメージしてください。
末尾再帰呼び出し
呼び出しが処理の最後で行われるため、コンピュータが前の記憶を保持し続ける必要がなく、メモリの無駄遣いを防げます。回数が増えてもスタック領域が溢れないように賢く省エネ運転する仕組みです。
無限再帰呼び出し
無限ループの関数バージョンであり、パソコンのメモリ領域であるコールスタックが限界を迎えて必ず「スタックオーバーフロー」というエラーで強制終了します。意図したものではなく、ただのバグであることがほとんどです。