Javaでのフィボナッチ数列:Javaでフィボナッチを記述および表示する方法

公開: 2020-07-29

フィボナッチ数列の名前は、イタリアの数学者レオナルドフィボナッチに由来しています。 彼は1202年に彼の著書LiberAbaciでこのシリーズを西ヨーロッパに紹介しました。インドの数学のシーンでは、ピンガラの作品からも明らかなように、紀元前200年にフィボナッチの魔法が見られました。 この数値の表現は、コーディングとコンピューティングの分野でも特別な位置を占めています。 この説明の終わりまでに、Javaでフィボナッチ数列を書くことについて学びました。

整数シーケンスは0と1で始まり、その後の各数値は、その前にある2つの数値の合計です(たとえば、0、1、1、2、3、5など)。 JavaScriptでそれを生成する主な方法は2つあります。つまり、(i)反復を使用する、つまり再帰を使用しない方法と、(ii)再帰を使用する方法です。 反復アプローチではタスクを完了するのに直線的な時間がかかりますが、再帰的手法を使用すると指数関数的に解を得ることができます。 それでは、これらの方法の詳細を1つずつ詳しく見ていきましょう。

読む: PythonとJavascriptのスローダウン:どちらを優先する必要がありますか?

目次

Javaでフィボナッチ数列を書く

方法1:再帰なし

  • Forループ

この場合、Javaプログラムでフィボナッチ数列の最初のn個の数を生成する必要があります。 'for'ループの反復がどのように機能するかを詳しく見てみましょう。

まず、シリーズの最初の2つの数値を初期化します。 次に、For Loopは2つの直前の先行を合計し、値を出力します。 このプロセスは、最初のn個の数字が表示されるまで続きます。 プログラムは反復を開始する前にすでに0と1を公開しているため、Forループ条件はn-2で与えられます。

  • Whileループ

これは、Forループメソッドと同様のロジックに従いますが、プログラマーはそのアプリケーションにもっと注意する必要があります。 'while'ループの制御フローステートメントは、ブール条件でコードを繰り返し実行します。 条件が満たされるか、真である場合にのみ、ループの本体が実行されます。 さらに、update式はループ変数をインクリメントします。 逆に、条件がfalseと評価された場合は、whileループを終了します。

読む: Javaアーキテクチャとコンポーネントの説明

Whileループをよりよく理解するために、以下に示すJavaコードを観察してみましょう。

方法2:再帰あり

再帰を使用してJavaでフィボナッチ数列を記述している場合、関数はそれ自体を直接または間接的に呼び出します。 これは基本的なJavaScriptプログラミング手法であり、この関数は再帰関数として知られています。

再帰的アルゴリズムは、複雑な問題を簡単に解決するのに役立ちます。 再帰を使用してフィボナッチ数列の最初の「n」数を出力するとします。 必要なシリーズを生成するには、再帰的なJavaプログラムが必要になります。 このような実装の段階的な説明は次のとおりです。

  • ユーザーが入力を与える
  • Forループは、各反復がn位置のフィボナッチ数を返す関数を呼び出すまでループに適用されます。 フィボナッチ数(int n)とします
  • 次に、関数は再帰的に自分自身を呼び出し、前の2つのフィボナッチ数を追加します

フィボナッチ数列の例

フィボナッチ数列の実際の例には、花びら、松ぼっくり、木の枝、貝殻の渦巻きなど、自然界の他の多くの表現が含まれます。 この数学的シーケンスのこの黄金比の法則は、私たちのDNA分子や銀河の渦巻きなど、宇宙の最も基本的な特性に固有のものです。

上記の反復法と再帰法は、フィボナッチ数列の漸化式の実装です。 これは、F(n)= F(n-1)+ F(n-2)で与えられます。 この関係にシード値を入れると、F(0)= 0およびF(1)= 1になります。与えられた数nに対して、フィボナッチ数列のn番目の数をどのように見つけますか? さまざまな入力でこのシナリオを考えてみましょう。

  • 入力n=2の場合、出力は1になります。
  • 入力n=9の場合、結果は34になります。

これらの基礎に基づいて、F(n)を返す関数を作成できます。 関数は次のように指定できます:int fib(int n)。 n = 0の場合、fib()関数は0を返します。同様に、n = 1の場合、fib()は1を返します。n> 1の場合、出力はF(n-1)+ F(n-2)になります。

fib()関数のテストケース

短いシーケンスの場合、つまり。 [0、1、1、2、3、5、8、…、55]およびfib(5)の場合、結果は5になります。したがって、フィボナッチ数列配列からインデックス5の要素を返すことを目指します。 。 反復法を使用して、これがどのように展開するかを見てみましょう。

  • 関数fib(n){

配列=[0,1];

for(let j = 2; j <n + 1; j ++){

array.push(array [j-2] + array [j-1])

}

配列を返す[n]

}

上記のコードスニペットでは、空の配列を作成する代わりに、配列変数を[0,1]に割り当てていることがわかります。 ループはj=2から反復を開始し、配列の長さがn + 1になるまで数値を追加し続けます。このようにして、nインデックスの数値を返します。 したがって、出力はfib(4)の場合は3、fib(5)の場合は5というようになります。

インタビューで再帰を使用して同じ問題を解決するように求められた場合は、次の基本ケースを使用できます。

  • 関数fib(n){

if(n> 2){

nを返す

}

fib(n-1)+ fib(n-2)を返す

}

引数5を指定してfib()を呼び出すとします。ここで、fib関数は、ベースケース(nの値が2未満)に達するまでツリーのブランチをさらに作成し続け、その後、戻り値の合計を開始します。各ブランチの値。 再帰呼び出しは、5に等しい整数が出力された場合にのみ停止します。

Javaでのフィボナッチ数列の利点

  • シンプルなJavascriptプログラムで、フィボナッチ数列を実行して、特定の数または用語までの数列を簡単に表示できます。
  • Recursionは、Javaで簡潔で表現力豊かなコードを提供します
  • 反復アルゴリズムは、制限されているため、本番環境で優れたソリューションを提供し、コードを堅牢に保ちます。 対照的に、再帰的アルゴリズムはスタックオーバーフローエラーを引き起こすことがあります
  • フィボナッチ検索はソートされた配列で機能し、主にアクセス速度が以前にアクセスした場所に依存する場合、バイナリ検索よりも優れたパフォーマンスを発揮します
  • フィボナッチ数列に精通していることで、学生はさまざまなフロントエンドおよびバックエンド機能を必要とする最新のアプリケーションで作業しながらロジックを開発できます。

チェックアウト: Javaプロジェクトのアイデア

まとめ

この記事では、Javaでフィボナッチ数列を実装し、さまざまなメソッドの背後にあるロジックを理解できるように支援しました。 フィボナッチ数は、再帰を使用して、または再帰なしで(forループとwhileループ)表すことができます。 その後、2つの方法の背後にあるコアコンセプトを更新し、それらの利点についても説明しました。

これらすべての情報を使用して、アルゴリズムの知識を更新し、より適切なコードを記述できます。 配列、二分木、リンクリストなどのデータ構造についても十分に理解しているとよいでしょう。上記の記事を改訂の開始点として使用し、プログラミングスキルを身に付けてください。

Java、フルスタックソフトウェア開発について詳しく知りたい場合は、upGrad&IIIT-Bのフルスタックソフトウェア開発のPGディプロマをチェックしてください。これは、働く専門家向けに設計されており、500時間以上の厳格なトレーニング、9以上のプロジェクトを提供します。 、および割り当て、IIIT-B卒業生のステータス、実践的な実践的なキャップストーンプロジェクト、およびトップ企業との雇用支援。

あなたの夢の仕事に着陸

フルスタック開発におけるアップグレードおよびIIIT-BANGALOREのPGディプロマ
今すぐ申し込む