目次
1. フィボナッチ数列とは
フィボナッチ数列は、初めの2つの項が1で、その後の項が直前の2つの項の和になるような数列です。すなわち、数列は次のようになります:1, 1, 2, 3, 5, 8, 13, 21, ....
2. フィボナッチ数列の生成方法
JavaScriptでフィボナッチ数列を生成するには、再帰関数またはループを使用する方法があります。ここでは、両方の方法を解説します。
3. コード例
再帰関数を使用する方法
function fibonacci(n) { if (n <= 2) return 1; return fibonacci(n - 1) + fibonacci(n - 2); }
ループを使用する方法
function fibonacci(n) { let a = 1, b = 1; for (let i = 3; i <= n; i++) { let c = a + b; a = b; b = c; } return b; }
4. 応用例
1. フィボナッチ数列を配列として生成
function fibonacciSeries(n) { let series = [1, 1]; for(let i = 2; i < n; i++){ series.push(series[i - 1] + series[i - 2]); } return series; }
2. フィボナッチ数列を利用した絵画パターン生成
function drawFibonacciSpiral(n) { let a = 1, b = 1; let canvas = document.createElement('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.arc(a, b, a, 0, 2 * Math.PI); for (let i = 3; i <= n; i++) { let c = a + b; ctx.arc(b, c, c, 0, 2 * Math.PI); a = b; b = c; } ctx.stroke(); return canvas; }
3. フィボナッチ数列を利用したソートアルゴリズム
function fibonacciSort(array) { let fib = [1, 1]; while (fib[fib.length - 1] < array.length) { fib.push(fib[fib.length - 1] + fib[fib.length - 2]); } for (let i = fib.length - 1; i >= 0; i--) { for (let j = fib[i] - 1; j < array.length; j++) { let temp = array[j]; let k = j; while (k >= fib[i] && array[k - fib[i]] > temp) { array[k] = array[k - fib[i]]; k -= fib[i]; } array[k] = temp; } } return array; }
5. まとめ
以上がJavaScriptでフィボナッチ数列を生成する方法とその応用例です。フィボナッチ数列は単純な概念でありながら、その応用範囲は非常に広く、プログラミング能力を向上させるための試金石とも言えます。ぜひ、これを機にフィボナッチ数列の理解を深めてみてください。