タグ

2009年10月22日のブックマーク (1件)

  • cmag3.rd

    第3回 Rubyインタプリタの組み込み(1) 前田修吾 末尾再帰 先日、Pythonのメーリングリストで、再帰呼び出しを使った階乗の計算をどれ くらいまでできるかということが話題になりました。ちょっと気になったので Rubyではどれくらい計算できるのか試してみました。Rubyで階乗の計算を行う プログラムは、再帰呼び出しを使ってList1のように書くことができます。実 行結果はFig1のようになりました。どうも私の環境では1700と1800の間に限界 があるようです。ちなみにPythonでは9000くらいまで計算できました。これだ けの材料で判断するのは早計かもしれませんが、RubyインタプリタはPythonに くらべてスタックの消費が多いようですね:-( このように再帰呼び出しは深くなる(呼び出し回数が多くなる)ほどスタックを 消費し、ついにはスタックを使い尽くしてしまいます。たとえば、