ホームページ  >  記事  >  Java  >  Javaのフィボナッチ数列

Javaのフィボナッチ数列

WBOY
WBOYオリジナル
2024-08-30 16:25:45489ブラウズ

フィボナッチ数列は、各数値が先行する 2 つの値の合計として機能し、その数列が常に基本整数 0 と 1 で始まるプロセスにあります。フィボナッチ数列は黄金比と密接に関連しています。このトピックでは、Java のフィボナッチ数列について見ていきます。

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

式:

an = an − 2 + an − 1
Fibonacci series for first 21 numbers
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
最初の 21 個の数値のフィボナッチ数列 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 テーブル>

主要なアプリケーション

Java におけるフィボナッチ数列の主要なアプリケーションを以下に示します。

  • マイルからキロメートル、およびキロメートルからマイルへの変換。
  • アジャイル手法のいくつかの例。
  • Euclid のアルゴリズム実行時解析計算は、この一連の手法を使用して実行されます。
  • フィボナッチ統計は、一部の擬似乱数生成器によって数学的に使用されます。
  • ポーカーの計画プロセスには、このテクニックの使用が含まれます。
  • フィボナッチ ヒープのデータ構造手法は、フィボナッチ数列手法を使用して実現されます。
  • 光学では、異なる屈折率を持つ異なる材料でできた 2 枚の半透明の板を重ねたものの最初から最後まで光の軸が視点で輝きますが、光は 3 つの表面、つまり頂点、中心、底面から反射することがあります。 2枚のプレート。反射が生じる異種光線経路の数。k > の場合。 1、{表示スタイル k} はフィボナッチ数です。

フィボナッチ級数プログラム (非再帰プログラム)

以下はフィボナッチ数列プログラムです:

コード:

// Fibonacci series program
public class Fibonacci {
// main program
public static void main(String[] args) {
int count = 10, var1 = 0, var2 = 1;
System.out.print("First " + count + " terms: ");
// Fibonacci series formation loop
for (int i = 1; i <= count; ++i)
{
System.out.print(var1 + " + ");
int added_sum= var1 + var2;
var1 = var2;
var2 = added_sum;
}
}
}

出力:

Javaのフィボナッチ数列

説明:

  • このプログラムは、指定された数値範囲のフィボナッチ数列を計算します。
  • ここでは、このプロセスは再帰的手法を使用せずに実現されています。

プログラムアルゴリズム

  • ルート クラス フィボナッチは、このクラスに埋め込まれたすべてのプログラム コードがフィボナッチ数列を実現する機能に対応する必要があるために宣言されています。
  • ルートクラス内で main メソッドが宣言されます。 main メソッドは、原則として、重要な Java メソッドとして機能します。 JVM の実行は、プログラム内に main メソッドが存在しないと行われません。メインメソッドのさまざまなサブコンポーネントの説明を以下に示します。
  • 次に、変数の初期化セクションが暗黙的に示されます。このセクションには、3 つの異なる変数の初期化が含まれます。そのうちの 2 つは、変数レベル値のスワップを通じてフィボナッチ ロジックを実現するためのもので、もう 1 つの変数は、フィボナッチ ロジックを生成する必要がある値の数を調整するために適用されます。
  • フィボナッチ数列プログラムの主要なロジックは、プログラム セクションにある以下の for ループを使用して実現されます。

コード:

for (int i = 1; i <= count; ++i)
{
System.out.print(var1 + " + ");
int added_sum= var1 + var2;
var1 = var2;
var2 = added_sum;
}
  • ループセクションのこの背後にあるロジックは次のとおりです。最初は、ある範囲の値がループ上で実行されます。ループは、フローごとに範囲値を増加させて発生します。さらに、すべてのフローで、2 つのスワップ変数の値が 3 番目の変数に合計されます。
  • 合計した後、2 番目の変数値が最初の変数に暗黙的に組み込まれるため、最初の変数値はこのプロセスからフラッシュされます。次のステップでは、合計値が 2 番目の変数に代入されます。

したがって、このインスタンスの最後では、単一のロジック フローに対して、以下の出来事が適用されます。

  • 最初の変数の値はフラッシュされます。
  • 既存の 2 番目の変数の値が最初の変数に入力されます。
  • 合計された値は 2 番目の変数に移されます。

必要な値の指定された数に対して以下のロジック シーケンスを実行するプロセスで、フィボナッチ数列を実現できます。

1.フィボナッチ級数プログラム (配列を使用)

コード:

import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int Count = 15;
long[] array = new long[Count];
array[0] = 0;
array[1] = 1;
for (int x = 2; x < Count; x++) {
array[x] = array[x - 1] + array[x - 2];
}
System.out.print(Arrays.toString(array));
}
}

出力 :

Javaのフィボナッチ数列

説明:

  • 上で作成したプログラム ロジックを暗示していますが、このインスタンスでは、フィボナッチ入力は配列の一部として保存されます。
  • したがって、上記のすべての操作は配列に関して実行されます。

2.フィボナッチ数列プログラム (ループを含まない)

コード:

public class Fibonaccifunction
{
private static int indexvalue = 0;
private static int endPoint = 9;
public static void main (String[] args)
{
int number1 = 0;
int number2 = 1;
fibonaccifunction(number1, number2);
}
public static void fibonaccifunction(int number1, int number2)
{
System.out.println("index value : " + indexvalue + " -> " + number1);
if (indexvalue == endPoint)
return;
indexvalue++;
fibonaccifunction(number2, number1+number2);
}
}

出力 :

Javaのフィボナッチ数列

説明:

  • 上で作成したプログラム ロジックを暗示していますが、このインスタンスでは、フィボナッチ入力は Fibonacci という名前の関数を使用して再帰的に処理されます。

3.フィボナッチ級数プログラム (Any ループを暗示せず、条件を使用してのみ達成)

コード:

public class Fibonacci_with_conditions
{
static int number2=1;
static int number1=0;
static int next=0;
public static  void Fibonacci_conditions( int number)
{
if(number<10)
{
if(number == 0)
{
System.out.print(" "+number);
number++;
Fibonacci_conditions (number);
}
else
if(number == 1)
{
System.out.print(" "+number);
number++;
Fibonacci_conditions(number);
}
else{
next=number1+number2;
System.out.print(" "+next);
number1=number2;
number2=next;
number++;
Fibonacci_conditions(number);
}
}
}
public static void main(String[] args)
{
Fibonacci_conditions(0);
}
}

出力:

Javaのフィボナッチ数列

説明:

  • Implying the program logic drafted above, but at this instance, the Fibonacci inputs are regulated only through necessary conditional statements.
  • According to the conditions, the swapping of the variables is necessarily carried out.

4. Fibonacci Series Program( Without Loops, the Concepts of Looping is Achieved using Nextint Method)

Code:

import java.util.*;
public class Fibonacci_series
{
public static void main(String[] args)
{
System.out.println("Input:");
int number= 10,value1=1,value2=0,value3=0;
num(number, value1, value2, value3);
}
public static void num(int number,int value1,int value2,int value3)
{
if(value1 <= number)
{
System.out.println(value1);
value3=value2;
value2=value1;
value1=value2+value3;
num(number,value1,value2,value3);
}
}
}

Output:

Javaのフィボナッチ数列

Explanation:

  • Implying the program logic drafted above, but at this instance, the Fibonacci inputs are handled recursively using a function named num, and the loop is carried out using the nextInt function.

Conclusion – Fibonacci Series in Java

These programs are implied to achieve the Fibonacci series for a given integer value.  A largely classified set of techniques are implied in the given list of examples. Techniques like an array-oriented approach and a condition-alone approach are very much peculiar.

以上がJavaのフィボナッチ数列の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:Javaの階乗次の記事:Javaの階乗