Präsentationsfolien (PDF)

Präsentationsfolien (PDF) Präsentationsfolien (PDF)

ddi.informatik.uni.erlangen.de
von ddi.informatik.uni.erlangen.de Mehr von diesem Publisher
04.11.2013 Aufrufe

8.1 Einführung der Rekursion Korrekt gemäß Spezifikation? n • Fakultätsfunktion mathematisch: n! = i=1 i • Java-Code: long fakultaet(int n) { if (n == 1) { return 1; } else { return n * fakultaet(n - 1); } } • Nachweis von fakultaet(n) = n! für alle n 1 □ Induktionsanfang: fakultaet(1) = 1 = i=1 i = 1! □ Induktionsschluss "nn+1": fakultaet(n+1) = (n+1)*fakultaet(n) //Ausführung = (n+1) . n! //Induktionsannahme n = (n+1) . i=1 i //Definition von n! n+1 = i=1 i //Definition von Algorithmen und Datenstrukturen Philippsen/Stamminger/Pflaum/Riehle WS 2010/2011 Folie 08-12

8.1 Einführung der Rekursion Terminierungsüberlegungen • Terminierung kann für eine einzelne Eingabe nur im Erfolgsfall nachgewiesen werden. • Rekursive Berechnung terminiert, wenn □ es eine Fallunterscheidung im Rumpf der Funktion gibt, bei der mindestens ein Fall keinen rekursiven Aufruf enthält und □ wenn jeder rekursive Aufruf nach endlich vielen Schritten einen nicht-rekursiven Fall erreicht. Algorithmen und Datenstrukturen Philippsen/Stamminger/Pflaum/Riehle WS 2010/2011 Folie 08-13

8.1 Einführung der Rekursion<br />

Terminierungsüberlegungen<br />

• Terminierung kann für eine einzelne Eingabe nur im Erfolgsfall<br />

nachgewiesen werden.<br />

• Rekursive Berechnung terminiert, wenn<br />

□ es eine Fallunterscheidung im Rumpf der Funktion gibt,<br />

bei der mindestens ein Fall keinen rekursiven Aufruf enthält<br />

und<br />

□ wenn jeder rekursive Aufruf nach endlich vielen Schritten<br />

einen nicht-rekursiven Fall erreicht.<br />

Algorithmen und Datenstrukturen Philippsen/Stamminger/Pflaum/Riehle WS 2010/2011 Folie 08-13

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!