2017.01.23
数学
フィボナッチ数列
フィボナッチ数列は、イタリアの数学者レオナルド・フィボナッチが考えた「ウサギ算」から導かれる数列です。この数列は、自然界の現象に数多く出現し、ヒマワリの種の配列にもフィボナッチ数列の法則が働いているといわれています。それでは、フィボナッチ数列とはどうのようなものかを見ていきましょう。
0 1 1 2 3 5 8 13 21 34 …
n番目のフィボナッチ数をFnで表すと、Fnは再帰的に
F0 = 0
F1 = 1
Fn+2 = Fn + Fn+1 (n≧0)
で定義されます。
Javaソースコード
この式をJavaのプログラムにしたものが以下です。
Fibonacchi.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018
public class Fibonacchi { public static void main(String[] args) { int f0, f1, fn; f0 = 0; System.out.println( f0 ); f1 = 1; System.out.println( f1 ); for ( int i = 2; i <= 10; ++ i ) { fn = f0 + f1; System.out.println( fn ); f0 = f1; f1 = fn; } } }
実行結果
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis Fibonacchi.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac Fibonacchi.java
Fibonacchiを実行
C:\talavax\javasample>java Fibonacchi
n=0から10のフィボナッチ数を表示します。
出力結果
0 1 1 2 3 5 8 13 21 34 55
Javaのソースコード解説
ここからは、このソースコードを上から順番に解説していきます。
001
public class Fibonacchi {
クラス名を、Fibonacchiとしています。
002
public static void main(String[] args) {
このmainメソッドからプログラムを実行します。
003
int f0, f1, fn;
このプログラムで使う変数を宣言しています。
005 006 007 008 009
f0 = 0; System.out.println( f0 ); f1 = 1; System.out.println( f1 );
F0とF1の値をそれぞれ変数に代入し、表示しています。
011 012 013 014 015 016
for ( int i = 2; i <= 10; ++ i ) { fn = f0 + f1; System.out.println( fn ); f0 = f1; f1 = fn; }
F2からF10の値を計算した結果をFnに代入し、表示しています。
以上です。