1。思考
ウサギの問題は、フィッシャーシリーズの比ur的な声明であり、これはフィボナッチという数学者によって作品で提起された問題です。
2。説明
その物理的なテクニックの問題は、赤ちゃんが毎月赤ちゃんを出産する場合、赤ちゃんは1か月後に赤ちゃんを出産し始めます。最初は赤ちゃんが1人しかいませんでしたが、1ヶ月で2人の男の子、2ヶ月で3人の男の子、3ヶ月で5人の男の子がいました(小さな男の子が生産されました)...
数学的な方法で表現します。これは、次のシーケンスのセットです。
1、1、2、3、5、8、13、21、34、55、89 ......
注:生まれたばかりの赤ちゃんは生産を開始するのに1か月かかります!そして、これらのウサギは不滅です! ! !
3。ルール
この問題に不可解にさらされている場合、ルールを見つけることは困難ですが、数学のシーケンスの法則に従ってこの問題について考えて、比較を待ちますか?アバターの違い?または何か他のもの?これは数学者によって提起された質問なので、特定の数学的ルールがあるはずですよね?ルールは何ですか?上記のシーケンスセットを注意深く分析すると、すでに答えがあります。そうです、それは一つの文で表現されています。 3番目の用語から始まる最初の2つの用語の合計は、3番目の用語に等しくなります。
Nth項の値がFNであると仮定すると、シーケンスの規則性は、数学式を使用して次のように表されます。
4。Pseudocode
いわゆる擬似コードは実際のコードではありません。マシンで実行することはできません。これは、プログラムロジックを表現する自然言語とプログラミング言語の間の意味のあるシンボルです。ウサギ問題の擬似コードについては、上記の式の再帰的方法をここで使用し、次の擬似コードを使用できます。
手順fib(n)[if(n <0)print( "入力エラー"); if(n = 0またはn = 1)return(n); else return(fib(n-1) + fib(n-2)); ]
前の記事で説明した再帰の概念によると、詳細については、以前の「Hanno問題」を参照できます。皆と比較して、あなたは再帰にあまり慣れていないことになります。次に、上記で取得した数式に基づいて、そのような再帰的な擬似コードを推測することは非常に簡潔で明確になります。しかし、ええと、あなたはそれを推測したかもしれません、私はそれを言いたいです。私たちのN値が大きすぎると、プログラムが遅くなるという問題を発見しましたか?
ご存知の場合は、この問題について真剣に考えていることを意味し、心の疑問も解決する必要があります。それがまだ解決されていることが疑いの余地がない場合は、みんなの疑問を解決させてください。なぜ遅いのですか?その理由は、n番目の用語を計算するときに、n-1およびn-2項を再度計算する必要があり、両方の項が以前に計算されたためです。次の番号を見つけても、横に計算する必要があります。目に見えないほど、私たちは多くの役に立たない仕事をしました。
それで、この問題を解決する良い方法はありますか?答えがあります。上記の分析によると、Nth項を解くと、以前のN-1およびN-2の用語が解決されました。それで、なぜ私たちはそれを保存しませんか? ? ? ?
ハハ、突然気づきましたか?はい!ここで時間を交換するためにスペースを使用しています。これにより、効率が大幅に向上します!ここに擬似コードは書きません。
5。コード
わかりました、私はそれをすべて販売しました、コードをアップロードするだけです:
public class fibonacci {public static void main(string [] args){int [] fib = new int [20]; fib [0] = 0; fib [1] = 1; for(int i = 2; i <fib.length; i ++){fib [i] = fib [i-1]+fib [i-2]; } for(int i = 0; i <fib.length; i ++){system.out.print(fib [i]+""); } system.out.println(); }}6。思考
ここでは、思考の質問を提案します。ウサギが1つのウサギと複数のウサギを産んでいない場合、どのように解決すべきでしょうか?もちろん、複数を出産することとは、固定数です。 1つのウサギはより多くを出産せず、1つのウサギはより少ない出産を与えません。そうしないと、それを解決することは不可能です。
ここにはコードはありません。オンラインで適切なリソースを見つけて、それらを解決する方法を確認できます。
要約します
上記は、ウサギの問題を解決するためのJava言語のコード分析に関するこの記事のすべての内容です。私はそれが誰にでも役立つことを願っています。興味のある友人は、このサイトの他の関連トピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください!