2007-08-24
function fib{param($x) if($global:m.$x -isnot [int]){ if($x -le 1){ $global:m += @{$x = 1} }else{ $global:m += @{$x = (fib ($x - 1)) + (fib ($x - 2))} } } return $global:m.$x }
メモ化してみた。
ハッシュ $m を作成してから、実行する。
$m = @{} fib 40 165580141
fib 47 以上だとエラーが出る。