Download presentation
Presentation is loading. Please wait.
Published byJenna Collins Modified over 11 years ago
1
Diskrete Mathe1 1234567 Diskrete Mathematik I Rekursion Vorlesung 3
2
Diskrete Mathe1 12345671 Das Prinzip der Rekursion Beispiel: Fakultätsfunktion Übersicht
3
Diskrete Mathe1 12345672 Rekursion im Bild
4
Diskrete Mathe1 1234567 Eine rekursive Definition reduziert ein Problem auf ein kleineres Problem derselben Art. Eine rekursive Funktion setzt eine rekursive Definition in ein Programm um. Das Prinzip der Rekursion 3
5
Diskrete Mathe1 1234567 Beispiel: Fakultätsfunktion Definition: Für n 0 gilt A 1x 4
6
Diskrete Mathe1 1234567 Programmkonstrukte von Java if (Bedingung) Anweisung1; elseAnweisung2; Wenn die Bedingung erfüllt ist, führe Anweisung1 aus, sonst Anweisung 2 int my_function(...) {...... return Integer_Ausdruck;..... } Aufruf: int i = my_function(...); Die Funktion my_function liefert den integer-Ausdruck zurück, der hinter return steht. 5
7
Diskrete Mathe1 1234567 int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } A 9x Fakultät 6
8
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } fak(4) n = 4 7
9
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } 4 != 0 fak(4) 7
10
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } 4 > 0 fak(4) 7
11
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } 4 * fak(3) fak(4) 7
12
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } 4 * fak(3) fak(4)fak(4)=4*fak(3) fak(3) n = 3 7
13
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } 4 * fak(3) fak(4)fak(4)=4*fak(3) 3 != 0 fak(3) 7
14
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } 4 * fak(3) fak(4)fak(4)=4*fak(3) 3 > 0 fak(3) 7
15
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } 4 * fak(3) fak(4)fak(4)=4*fak(3) 3 * fak(2) fak(3) 7
16
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 3 * fak(2) fak(3) 3 * fak(2) fak(3)=3*fak(2) fak(2) 7
17
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 3 * fak(2) fak(3) 3 * fak(2) fak(3)=3*fak(2) 2 * fak(1) fak(2) 7
18
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 3 * fak(2) fak(3)=3*fak(2) 3 * fak(2) fak(3)=3*fak(2) 2 * fak(1) fak(2) 2 * fak(1) fak(2)=2*fak(1) fak(1) 7
19
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 3 * fak(2) fak(3)=3*fak(2) 3 * fak(2) fak(3)=3*fak(2) 2 * fak(1) fak(2)=2*fak(1) 1 * fak(0) fak(1) 7
20
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 3 * fak(2) fak(3)=3*fak(2) 3 * fak(2) fak(3)=3*fak(2) 4 * fak(3) fak(3)=3*fak(2) 2 * fak(1) fak(2)=2*fak(1) 3 * fak(2) fak(2)=2*fak(1) 1 * fak(0) fak(1) 2 * fak(1) fak(1)=1*fak(0) fak(0) 7
21
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 3 * fak(2) fak(3)=3*fak(2) 3 * fak(2) fak(3)=3*fak(2) 4 * fak(3) fak(3)=3*fak(2) 2 * fak(1) fak(2)=2*fak(1) 3 * fak(2) fak(2)=2*fak(1) 1 * fak(0) fak(1) 2 * fak(1) fak(1)=1*fak(0) n = 0 fak(0) 7
22
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 3 * fak(2) fak(3)=3*fak(2) 3 * fak(2) fak(3)=3*fak(2) 4 * fak(3) fak(3)=3*fak(2) 2 * fak(1) fak(2)=2*fak(1) 3 * fak(2) fak(2)=2*fak(1) 1 * fak(0) fak(1) 2 * fak(1) fak(1)=1*fak(0) 1 fak(0) 7
23
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 3 * fak(2) fak(3)=3*fak(2) 3 * fak(2) fak(3)=3*fak(2) 4 * fak(3) fak(3)=3*fak(2) 2 * fak(1) fak(2)=2*fak(1) 3 * fak(2) fak(2)=2*fak(1) 1 * fak(0) fak(1) 2 * fak(1) fak(1)=1*fak(0) fak(0) = 1 7
24
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 3 * fak(2) fak(3)=3*fak(2) 3 * fak(2) fak(3)=3*fak(2) 4 * fak(3) fak(3)=3*fak(2) 2 * fak(1) fak(2)=2*fak(1) 3 * fak(2) fak(2)=2*fak(1) 1 * fak(0) fak(1) fak(0) = 1 fak(1)=1*fak(0) 7
25
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 3 * fak(2) fak(3)=3*fak(2) 3 * fak(2) fak(3)=3*fak(2) 4 * fak(3) fak(3)=3*fak(2) 2 * fak(1) fak(2)=2*fak(1) 3 * fak(2) fak(2)=2*fak(1) fak(1) = 1*1 7
26
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 3 * fak(2) fak(3)=3*fak(2) 3 * fak(2) fak(3)=3*fak(2) 4 * fak(3) fak(3)=3*fak(2) 2 * fak(1) fak(2)=2*fak(1) 3 * fak(2) fak(2)=2*fak(1) fak(1) = 1 7
27
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 3 * fak(2) fak(3)=3*fak(2) 3 * fak(2) fak(3)=3*fak(2) 4 * fak(3) fak(3)=3*fak(2) 2 * fak(1) fak(2)=2*fak(1) fak(1) = 1 fak(2)=2*fak(1) 7
28
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 3 * fak(2) fak(3)=3*fak(2) 3 * fak(2) fak(3)=3*fak(2) 4 * fak(3) fak(3)=3*fak(2) fak(2) = 2*1 7
29
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 3 * fak(2) fak(3)=3*fak(2) 3 * fak(2) fak(3)=3*fak(2) 4 * fak(3) fak(3)=3*fak(2) fak(2) = 2 7
30
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 3 * fak(2) fak(3)=3*fak(2) 3 * fak(2) fak(3)=3*fak(2) fak(2) = 2 fak(3)=3*fak(2) 7
31
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 3 * fak(2) fak(3)=3*fak(2) fak(3) = 3*2 7
32
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) 3 * fak(2) fak(3)=3*fak(2) fak(3) = 6 7
33
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) fak(3) = 6 fak(4)=4*fak(3) 7
34
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } 4 * fak(3) fak(4)=4*fak(3) 4 * fak(3) fak(4)=4*fak(3) fak(4) = 4*6 fak(4)=4*fak(3) 7
35
Diskrete Mathe1 1234567 A 29x int fak(int n) { if(n==0) return 1; else if (n>0) return n * fak(n-1); else return -1; } 4 * fak(3) fak(4)=4*fak(3) fak(4) = 24 7
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.