2004 Pohlig Leonardo Pisano genannt Fibonacci geb vermutlich
© 2004 Pohlig Leonardo Pisano, genannt Fibonacci geb. vermutlich 1170 – gest. vermutlich 1250 Ort: Pisa Thema: Fibonacci-Zahlen Informatik Kurse 11 -13
© 2004 Pohlig Übung 1 Notieren Sie die Seitenlängen der Quadrate, wenn das erste Quadrat eine Seitenlänge 1 hat. Setzen Sie die Folge fort. Erkennen Sie ein Bildungsgesetz? Informatik Kurse 11 -13
© 2004 Pohlig Lösung 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89. . . fib(n) = fib(n-1) + fib(n-2) 2 -fach-Rekursion mit Basisfall fib(1) = fib(2) = 1 Informatik Kurse 11 -13 3
© 2004 Pohlig Übung 2 Siehe Aufgabenblatt Lösung Informatik Kurse 11 -13 4
© 2004 Pohlig Übung 3: Fibonacci-Demo-Programm Lösung: rekursive Methode import info 1. *; public class Fibonacci. Demo{ public static void main(String[] args){ System. out. print("Geben Sie ein Zahl an: "); int a = Console. in. read. Int(); System. out. println("fib("+a+") = " + fibonacci(a)); } private static int fibonacci(int a){ if (a==1||a==2) return 1; else return fibonacci(a-1)+fibonacci(a-2); } } Informatik Kurse 11 -13 5
© 2004 Pohlig Übung 4 Bauen Sie in das Demoprogramm eine Uhr ein, um den zeitlichen Aufwand bei der Berechnung von Fibonacci. Zahlen zu messen Lösung: import info 1. *; public class Fibonacci. Demo. Uhr{ public static void main(String[] args){ Stopp. Uhr uhr = new Stopp. Uhr(); System. out. print("Geben Sie ein Zahl an: "); int a = Console. in. read. Int(); uhr. starten(); int fib = fibonacci(a); uhr. stoppen(); System. out. println("fib("+a+") = " + fib); System. out. println("Rechendauer: "+ uhr); } private static int fibonacci(int a){ if (a==1||a==2) return 1; else return fibonacci(a-1)+fibonacci(a-2); } Informatik Kurse 11 -13 6
© 2004 Pohlig Übung 5 Finden Sie eine grafische Darstellung, aus der man ablesen kann, was in welcher Reihenfolge berechnet wird, wenn man mit unserem Programm Fibonacci-Zahlen bestimmen lässt. Mögliche Lösung: Informatik Kurse 11 -13 7
© 2004 Pohlig Übung 6 Finden Sie eine nicht rekursive Methode zur Berechnung der Fibonacci-Zahlen import info 1. *; Typ long, um größere Zahlen berechnen zu können public class Fibonacci. Demo 2 { //gültig bis n= 92 public static void main (String[] args) { System. out. print("a: "); int a = Console. in. read. Int(); System. out. println("fib("+a+") = "+fibonacci(a)); } private static long fibonacci(int a){ long fib = 1; for (long fib 1 = 1, fib 2 = 1, i=3; i <= a; i++){ fib = fib 1 + fib 2; fib 1 = fib 2; fib 2 = fib; } Es können mehrere return fib; lokale Variable } definiert werden } Informatik Kurse 11 -13 8
- Slides: 8