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に代入し、表示しています。

以上です。

関連コンテンツ

数学に関係するJavaのメソッドやソースコードなどを紹介しています。

2022.10.25

自然界の現象に数多く出現するフィボナッチ数列のプログラムを作ってみませんか?

2017.01.23

配列を使ったフィボナッチ数列を出力するプログラムを作ってみませんか?

2021.03.09

自然界に現れる黄金角について解説しています。興味のある方は是非ご覧ください。

2020.03.23

デザインなどに使われる最も美しい比率について解説しています。

2020.03.23

長方形を使って黄金比を計算する方法を説明しています。

2023.02.15

長方形の分割で、白銀比を計算する方法を説明しています。

2023.11.06

繰り返し処理を使ったJavaのソースコードサンプルを紹介しています。

2020.03.23

基本的な計算である足し算(加法)/引き算(減法)/掛け算(乗法)/割り算(除法)を行うプログラム作成。

2020.03.23

画像フォーマット形式・色・大きさ・傾きなどの変更、特定の図形(文字・記号など)を見つけたり、取り出したりする画像処理について詳しく解説。

2015.11.29

日本で使われてきた伝統文様「和柄」について解説しています。

2022.07.27

プログラミング、ITに関する用語をまとめています。

2022.10.17

Javaのmainメソッドで受け取るパラメータについて解説しています。

2017.09.26

mainメソッドで受け取るパラメータの数の取得の仕方について解説しています。

2019.05.14

変数やクラスに格納されている値をコンソール出力する方法は?

2020.03.23

プログラムの最初に実行されるメソッドは?

2022.12.13

プログラミングで使う変数って何?

2020.03.23

Javaのプログラムを書いてみませんか?プログラムの書き方をくわしく説明しています。

2020.03.23

「Javaソースコード」から実行可能な「オブジェクトコード」に変換する方法をくわしく説明しています。

2020.03.23

Javaのプログラムを作ってみませんか?プログラミングに必要なものの用意から実行までを説明しています。

2020.03.23

Javaの学習に役立つソースコードを多数紹介しています。是非、ご覧ください。

2022.09.10

Swingパッケージを使ってグラフィック表示を行う方法を解説しています。

2020.03.23

配列を使うJavaソースコードを多数紹介しています。

2021.05.18

三角形、台形、円などいろいろな図形の面積を計算するプログラムを紹介しています。詳しくは、記事をご覧ください。

2021.05.18

StringクラスとStringBuilderクラスを利用したプログラミングの仕方を紹介しています。

2016.12.16

Javaを使った簡単な応用プログラム(生年月日から年齢を計算プログラムなど)を紹介しています。

2022.07.07

同じ型の変数(データ)を複数個まとめて管理するデータの持ちかたがあります。これが配列です。くわしくは、記事をご覧ください。

2016.01.14

ウサギ算(rabbit arithmetic)って何?

2017.02.23

プログラミング言語とは?種類や特徴について説明しています。

2022.08.03

Javaプログラムの構成について解説しています。詳しくは、こちらをご覧ください。

2020.03.23

「ゆるゆるプログラム」のコンテンツを紹介しています。興味のある方はこの記事をご覧ください。

2020.03.23

再帰を使ったフィボナッチ数列を出力するプログラムを作ってみませんか?

2017.01.23

広告