HOME»基本情報技術者試験掲示板»再帰処理について
投稿する

再帰処理について [5760]

 KOINUさん(No.1) 
再帰処理が複雑になってくると、再帰呼び出しの1つ終わり、1つ前の処理に戻る際、どこに戻ればよかったか、途中で迷子になります。やり方として、問題文に番号を振ることがあるみたいですが、問題文を書き写す時間が勿体無い気がします。他におすすめの対策方法があれば教えてほしいです。やはり問題文を繰り返しとき、自分なりのわかりやすい書き方を見つけるのが一番でしょうか。
2025.01.19 13:02
まーぼさん(No.2) 
FE シルバーマイスター
数式や日本語チックに考えると意外と簡単に捉えられるかも知れません。
例えば、2のn乗を求める関数(以下はPythonでの実装例)

def twoPowerNByRecursiveFunction(n):
    if n == 0:
        return 1
    
    return twoPowerNByRecursiveFunction(n-1) * 2

数学的には、
2^n := 
{1 (n = 0)
{2^(n-1) * 2 (otherwise)

日本語的には、
2のn乗の求め方は、一般的には2の(n-1)乗に2を掛ければよい。ただし、n=0のときは、1になる。

のような感じです。

ですので、再帰関数を見るときに、

def twoPowerNByRecursiveFunction(n):
///
    if n == 0:
        return 1
/// ↑この部分が特殊な場合
    
    return twoPowerNByRecursiveFunction(n-1) * 2
/// ↑この部分が一般的な場合

のような感じで色付けすると脳の容量を抑えられるかも知れません。
2025.01.19 17:12
 KOINUさん(No.3) 
ご丁寧に返信ありがとうございました!次回から、頭に入れてやってみようと思います!!
2025.01.19 17:56
返信投稿用フォーム
お名前
顔アイコン

本文(コミュニティガイドライン⇱を順守して適切な投稿を心がけましょう)
🔐投稿削除用のパスワード
投稿プレビュー
※CBT試験では出題内容の公開が禁止されているため、直接的・間接的を問わず、出題内容や難易度を尋ねる質問は厳禁です。
※宣伝や迷惑行為を防止するため、当サイト、姉妹サイト、IPAサイト以外のURLを含む文章の投稿はできません。
投稿記事削除用フォーム
投稿No. パスワード 
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop