CodeGym /Java Blog /ランダム /Javaのフィボナッチ数列
John Squirrels
レベル 41
San Francisco

Javaのフィボナッチ数列

ランダム グループに公開済み
Java のフィボナッチ数列プログラムを説明する前に、フィボナッチ数を計算する数学的方法が何であるかを見てみましょう。
「フィボナッチ数列は、0 と 1 で始まる数列の最後の 2 つの連続する数値を加算すると形成されます。」
言い換えれば、フィボナッチ数列では、次の数値は最後の 2 つの数値の合計に等しいと言えます。たとえば、0、1、1、2、3、5、8、13、21、34... 上記の系列を見ると、数学で計算するのは非常に簡単に見えます。最後の 2 つのフィボナッチ数を取得して加算するだけで完成です。その結果がシリーズの最新の数値です。したがって、フィボナッチ数列の次の数値は 21 + 34 = 55 になります。ただし、Java にはこれを行うためのさまざまなアルゴリズムがあります。考えられる方法を見てみましょう。

Java のフィボナッチ数列 [反復法]

Java でフィボナッチ数列プログラムを計算する最初の最も基本的な方法は、反復法を使用することです。名前が示すように、ループを使用して一連の処理を繰り返します。次の例をさらに詳しく見てみましょう。

public class IterativeFibonacci {

	public static void fibonacci(int MAX) {

		int firstNumber = 0;
		int secondNumber = 1;
		int fibonacci = '\0';

		System.out.print(firstNumber + " ");
		System.out.print(secondNumber + " ");

		for (int i = 2; i < MAX; i++) {

			fibonacci = firstNumber + secondNumber;
			System.out.print(fibonacci + " ");

			firstNumber = secondNumber;
			secondNumber = fibonacci;
		}
	}

	public static void main(String[] args) {

		System.out.println("Print Fibonacci Series Using Iterative Method");
		int MAX = 15;
		fibonacci(MAX);

	}
}

出力

反復法を使用したフィボナッチ数列の出力 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377

説明

上の例では、「 fibonacci 」と呼ばれるメソッドを使用して、フィボナッチ数列を繰り返し出力しています。変数MAX には、出力するフィボナッチ数の合計数が格納されます。2 つの変数firstNumberSecondNumber には、最初の 2 つのフィボナッチ数がそれぞれ格納されます。次に、最初と 2 番目のフィボナッチ数がすでに出力されているため、forループは i = 2 から始まります。各反復では、シリーズを継続するために最初と 2 番目の数値が更新されます。ループは MAX 制限に近づくと終了します。i < MAX。

Java で再帰を使用したフィボナッチ数列

反復法についてはよく知っているので、Java で再帰を使用してフィボナッチ数列を計算してみましょう。

public class RecursiveFibonacci {

	// recursive method to return the fibonacci series
	public static int fibonacci(int MAX) {

		// base case
		if (MAX <= 1) {
			return MAX;
		}

		// recursive call
		else {
			// calculate the last two fibonacci numbers recursively
			return fibonacci(MAX - 2) + fibonacci(MAX - 1);
		}

	}

	public static void main(String[] args) {

		System.out.println("Print Fibonacci Series Using Recursion in Java");

		int MAX = 10;
		for (int i = 0; i < MAX; i++) {
		    System.out.print(fibonacci(i) + " ");
		}
	}
}

出力

Java で再帰を使用してフィボナッチ数列を出力する 0 1 1 2 3 5 8 13 21 34

説明

まず、Java の再帰的フィボナッチ数列の MAX 桁数を定義します。次に、「 fibonacci 」と呼ばれる再帰関数を呼び出します。ご存知のとおり、Java で再帰を使用するには、2 つのケースを定義して処理する必要があります。1 つ目は基本ケース、もう 1 つは再帰ケースです。基本ケースでは、MAX 値が 1 以下であるかどうかを確認します。真の場合、同じ数値が返されます (フィボナッチの最初の 2 桁 0 と 1 を想像してください)。このようにして基数が計算されます。再帰呼び出しでは、MAX から 1 と 2 を減じて、系列の最後の 2 つの数値を計算します。フィボナッチ メソッドは、最後の 2 桁 (0 と 1) に達するまで呼び出しを続け、それらを加算し、MAX に達するまで最後の 2 桁を加算し続けます。

結論

Java でフィボナッチを計算する 2 つの異なる方法を理解できたと思います。動的プログラミングを使用して自分自身に挑戦することもできます。いつものように、皆さんが毎日練習して上達することを期待しています。学び続けて成長し続けましょう!
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION