soraなりの日々 - fc2 -

こころにひっかかったもの

[c++]再帰だ、再帰!...間違えてた。。。

明日、sicp の勉強会に参加させていただくので、
粗相がないようになるべく本を進ませようと、
土曜日はお家で引きこもって孤独に自分の限界と
戦ってました。

が、これがまたぜんっぜん進まない・・・(TT;

自分のレベルの低さをコーヒー片手に
思いっきり痛感した休日の午後3時・・・orz


絶対頭から煙り出てたな。

このエントリーをはてなブックマークに追加
いやー、苦しいっす。
苦行です。

けど、やっとかないといけないすね。これは。
と思いました。

そう思ったうちの一つ。
前に書いた再帰のプログラム間違えてた。

あれは、正確には再帰的プロセス(recursive process)では
なくて、反復的プロセス(iterative process)になる。

書き直したソース(若干無理矢理?)↓

int recursive2(int n)
    {
    if (n >= 1000)
        {
        return 0;
        }
    return 1 + recursive2(n+1);
    }

int main(void)
    {
    int nCnt = 0;
    cout << recursive2(nCnt) << endl;
    return 0;
    }

再帰的プロセスは下のように伸縮の形を取るが、
反復的プロセスは伸縮しない。

書き直した recursive2.cpp (recursive process):

recursive(0);
1 + recursive(1);
1 + 1 + recursive(2);
...

前の recursive.cpp (iterative process):

recursive(0);
recursive(1);
recursive(2);
...


そんなことも知らずに書いてしまってたことが、なんとも恥ずかしい限り。
けど、いまそれを知ることができた、というのも素直にうれしい。

やっぱり学び続けることは大事だ。
(オレみたいなアホなやつにとっては死活問題!!)


[[c++]再帰だ、再帰!]
このエントリーをはてなブックマークに追加

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://sora2hs.blog70.fc2.com/tb.php/301-379092a2
この記事にトラックバックする(FC2ブログユーザー)