【雑談】再帰の限界
Posted: 2011年12月20日(火) 17:23
再帰をしすぎるとスタックオーバーフローで落ちるとよく言われています。
では、いったいどのくらい再帰をすれば落ちるのでしょうか?
それを調べてみたいと思います。
おそらく環境に依存すると思うので、みんなに協力して調べていただけたらありがたいです。
よろしくお願いします。
調べ方は、まず添付したsaiki_test.zipをダウンロードし、解凍してください。
解答するとsaiki_test_0.exe~saiki_test_9.exeがあります。
それぞれのexeファイルを実行すると、数字が大量に表示されたあと、おそらくある所で強制終了します。
強制終了する直前に出力された行の数字をそれぞれのexeファイルについて調べてください。
Windows以外の環境の方は、
sourceフォルダに入っているsaiki_test_0.c~saiki_test_9.cをそれぞれコンパイルし、実行してください。
その際、最適化はかけないでください。(重要)
あとはexeファイルの時と同じです。
報告する際は、
OSの種類(Windowsなどだけでなく、例えばWindows Vista Home Premium SP2 32ビットなど)、
メモリの容量、
ソースをコンパイルした人はコンパイラの種類、
その他関係があると思われる情報とともに報告してください。
報告用テンプレート
OS:
メモリ:
コンパイラ(コンパイルした場合):
saiki_test_0:
saiki_test_1:
saiki_test_2:
saiki_test_3:
saiki_test_4:
saiki_test_5:
saiki_test_6:
saiki_test_7:
saiki_test_8:
saiki_test_9:
その他(必要と思えば):
自分の結果
OS:Windows Vista Home Premium SP2 32ビット
メモリ:2.00GB
コンパイラ:gcc version 3.2.3 (mingw special 20030504-1)
saiki_test_0:130163
saiki_test_1:65081
saiki_test_2:65081
saiki_test_3:65081
saiki_test_4:65081
saiki_test_5:43387
saiki_test_6:43387
saiki_test_7:43387
saiki_test_8:43387
saiki_test_9:32540
その他:なし
では、いったいどのくらい再帰をすれば落ちるのでしょうか?
それを調べてみたいと思います。
おそらく環境に依存すると思うので、みんなに協力して調べていただけたらありがたいです。
よろしくお願いします。
調べ方は、まず添付したsaiki_test.zipをダウンロードし、解凍してください。
解答するとsaiki_test_0.exe~saiki_test_9.exeがあります。
それぞれのexeファイルを実行すると、数字が大量に表示されたあと、おそらくある所で強制終了します。
強制終了する直前に出力された行の数字をそれぞれのexeファイルについて調べてください。
Windows以外の環境の方は、
sourceフォルダに入っているsaiki_test_0.c~saiki_test_9.cをそれぞれコンパイルし、実行してください。
その際、最適化はかけないでください。(重要)
あとはexeファイルの時と同じです。
報告する際は、
OSの種類(Windowsなどだけでなく、例えばWindows Vista Home Premium SP2 32ビットなど)、
メモリの容量、
ソースをコンパイルした人はコンパイラの種類、
その他関係があると思われる情報とともに報告してください。
報告用テンプレート
OS:
メモリ:
コンパイラ(コンパイルした場合):
saiki_test_0:
saiki_test_1:
saiki_test_2:
saiki_test_3:
saiki_test_4:
saiki_test_5:
saiki_test_6:
saiki_test_7:
saiki_test_8:
saiki_test_9:
その他(必要と思えば):
自分の結果
OS:Windows Vista Home Premium SP2 32ビット
メモリ:2.00GB
コンパイラ:gcc version 3.2.3 (mingw special 20030504-1)
saiki_test_0:130163
saiki_test_1:65081
saiki_test_2:65081
saiki_test_3:65081
saiki_test_4:65081
saiki_test_5:43387
saiki_test_6:43387
saiki_test_7:43387
saiki_test_8:43387
saiki_test_9:32540
その他:なし