1. denken
Das Kaninchenproblem ist eine figurative Aussage der Fischer -Serie, die eine Frage ist, die in ihren Werken eines Mathematikers namens Fibonacci aufgeworfen wird.
2. Beschreibung
Das Problem mit seiner physischen Technik ist: Wenn ein Baby jeden Monat ein Baby zur Welt bringt, beginnt das Baby einen Monat später ein Baby zur Welt zu bringen. Zuerst gab es nur ein Baby, und es gab zwei Jungen in einem Monat, drei Jungen in zwei Monaten und fünf Jungen in drei Monaten (der kleine Baby wurde in Produktion gebracht) ...
Wir drücken es auf mathematische Weise aus, was der folgende Satz von Sequenzen ist:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 ......
Hinweis: Das Neugeborene wird einen Monat dauern, bis die Produktion mit der Produktion beginnt! Und diese Kaninchen sind unsterblich! ! !
3. Regeln
Wenn wir diesem Problem unerklärlicherweise ausgesetzt sind, ist es schwierig, die Regeln zu finden, aber über dieses Problem nach den Gesetzen der Sequenzen in Mathematik nachzudenken und auf Vergleich zu warten? Avatar -Unterschied? Oder noch etwas? Da dies eine Frage ist, die von Mathematikern aufgeworfen wird, sollte es bestimmte mathematische Regeln geben, oder? Was ist die Regel? Wenn Sie die oben genannten Sequenzen sorgfältig analysieren, haben Sie bereits die Antwort. Das ist richtig, es wird in einem Satz ausgedrückt. Ab dem dritten Term entspricht die Summe der ersten beiden Begriffe der dritten Term.
Unter der Annahme, dass der Wert des N -ten Terms FN ist, wird die Regelmäßigkeit der Sequenz wie folgt unter Verwendung mathematischer Formeln ausgedrückt:
4. Pseudocode
Der sogenannte Pseudo-Code ist kein echter Code. Es kann nicht auf der Maschine ausgeführt werden. Es ist nur ein aussagekräftiges Symbol zwischen natürlicher Sprache und Programmiersprache, die Programmlogik ausdrückt. Für den Pseudocode des Kaninchenproblems verwenden wir die rekursive Methode der obigen Formel hier und können das folgende Pseudocode haben:
Prozedur FIB (n) [if (n <0) print ("Eingabefehler"); If (n = 0 oder n = 1) return (n); Sonst return (fib (n-1) + fib (n-2)); ]Gemäß dem im vorherigen Artikel beschriebenen Recursion -Konzept können Sie sich auf das vorherige "Hanno -Problem" finden. Im Vergleich zu allen werden Sie mit Rekursion nicht mehr zu unbekannt sein. Basierend auf den oben erhaltenen mathematischen Formeln ist es sehr präzise und klar, dass die Ableitung eines solchen Rekursions -Pseudocode. Aber ähm, Sie haben es vielleicht erraten, ich möchte es sagen. Haben Sie ein Problem gefunden, dass das Programm langsamer ist, wenn unser N -Wert zu groß ist?
Wenn Sie es herausfinden, bedeutet dies, dass Sie ernsthaft über dieses Problem nachgedacht haben, und Sie sollten auch die Zweifel in Ihrem Herzen lösen. Wenn es immer noch zweifellos gelöst ist, lassen Sie mich die Zweifel aller lösen. Warum ist es langsamer? Der Grund dafür ist, dass wir, wenn wir den N-ten Term berechnen, die N-1- und N-2-Begriffe erneut berechnen müssen, und beide Begriffe wurden bereits berechnet. Wenn wir die nächste Zahl finden, müssen wir sie noch nebenbei berechnen. Unsichtbar haben wir viele nutzlose Arbeit geleistet.
Haben wir also eine gute Möglichkeit, dieses Problem zu lösen? Es gibt eine Antwort. Nach der obigen Analyse wurden bei der Lösung des N-ten Terms die vorherigen N-1- und N-2-Begriffe gelöst. Warum sparen wir es nicht? ? ? ?
Haha, hast du es plötzlich gemerkt? Ja! Wir nutzen den Raum, um die Zeit hier auszutauschen, was die Effizienz erheblich verbessern kann! Ich werde hier nicht Pseudo-Code schreiben.
5. Code
Ok, ich habe alles verkauft, lade einfach den Code hoch:
public class fibonacci {public static void main (String [] args) {int [] fib = new int [20]; Fib [0] = 0; Fib [1] = 1; für (int i = 2; i <fib.length; i ++) {fib [i] = fib [i-1]+fib [i-2]; } für (int i = 0; i <fib.length; i ++) {System.out.print (fib [i]+""); } System.out.println (); }}6. Denken
Hier schlagen wir eine Denkfrage vor. Wenn ein Kaninchen nicht ein Kaninchen und mehrere Kaninchen zur Welt bringt, wie sollen wir es dann lösen? Natürlich ist das, was wir mit der Geburt von mehreren Menschen verstehen, eine feste Zahl. Ein Kaninchen wird nicht mehr zur Welt bringen und ein Kaninchen wird nicht weniger zur Welt bringen, da es sonst unmöglich ist, es zu lösen.
Hier gibt es keinen Code. Sie können die entsprechenden Ressourcen online finden und sehen, wie Sie sie lösen können.
Zusammenfassen
Der oben genannte ist der gesamte Inhalt dieses Artikels über die Codeanalyse der Java -Sprache zur Lösung von Kaninchenproblemen. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen!