Array(20).fill().forEach((e,n) => console.log(Math.round(Math.pow((Math.sqrt(5)+1)/2, n) / Math.sqrt(5))));
上記をコンソールなどで実行すると…以下のように表示される。
0
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
とりあえず私のような汎用な業務システムつくっているIT作業員にやらせたら再帰処理でやりがちですが、黄金比を使って求められる事を知ったので「php — PHPフィボナッチ数列」を参考にしてPHPで書いた後…頭にMathオブジェクトを付与すればそのままJavaScriptに転用できそうだったので書いてみました。
こんな簡単に求められるのを再帰関数で書いていたらダメだ…ということがわかった。
関数化しておいて再帰処理で呼び出せばいい。
rubyのような簡単な表記で再帰処理がかける仕組みがphpにもjsにも欲しい気がしてきた。(ruby使えっていうのはなし)
function roop(m,f func){
r = [];
for(var i = 0; i < m; i++){
r = f(a, b, c);
}
return r;
}
的な何か...
コメント