[js] フィボナッチ数を出力するワンライナー

javascript 徒然草2.0
javascript,js


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; } 的な何か...

徒然草2.0
スポンサーリンク
シェアする
gomiryoをフォローする
ごみぶろぐ

コメント

タイトルとURLをコピーしました