EmEditorみんなでまとめサイト

フィボナッチ数の計算

最終更新:

匿名ユーザー

- view
だれでも歓迎! 編集

フィボナッチ数の計算

マクロの起動時間に引き続いて、25番目のフィボナッチ数の計算を 行うマクロで処理時間を計測してみました。

前回同様、マクロの起動時間のページに貼り付けてある MacroBench の プラグインを使用しました。

今回は関数の呼び出しと足し算の処理が主となります。*1

マクロのソースコードは以下の通りです。

fib.jsee

function fib(n) {
	if (n < 2) {
		return 1
	} else {
		return fib(n-1) + fib(n-2)
	}
}
Window.document.writeln( fib(25) )

fib.plee

#language="PerlScript"
sub fib {
	my($n) = @_;
	if ($n < 2) {
		return 1;
	} else {
		return fib($n - 1) +  fib($n-2);
	}
}
$Window->document->writeln( fib(25) );

fib.vbee

function fib(n)
	if n < 2 then
		fib = 1
	else
		fib = fib(n-1) + fib(n-2)
	end if
end function
Window.document.writeln( fib(25) )

fib.pyee

#language="Python"
def fib(n):
	if n < 2:
		return 1
	else:
		return fib(n-1) + fib(n-2)
Window.document.writeln( fib(25) )

注: フィボナッチ数を求めるときは再帰を使うと効率が悪いので止めましょう :)


計測結果は以下のようになりました。(単位 ミリ秒)*2

*fib.jseefib.vbeefib.pleefib.pyee
1回目1750112517034156
2回目1328953812297
3回目1312954781313
4回目1328968782297
5回目1297938781312
6回目1328969797281
7回目1313984781297
8回目1297921781297
9回目1234922766297
10回目1266969766281

文責: とらめ

添付ファイル
ウィキ募集バナー
注釈

*1 121392回の足し算と、242785回の関数コールが行われます

*2 たまたまこちらの環境ではこうなったというだけで、他の環境でも同様のものが得られることは保証しません