Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Proogramm mit Rekursion » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Proogramm mit Rekursion
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Informatikdepp
Grünschnabel


Dabei seit: 17.02.2018
Beiträge: 2

Proogramm mit Rekursion Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Meine Frage:
Es geht um folgendes Programm

def funktion (k) :
if k > 1 :
return funktion (k-1) + k
else:
return 1

n = 10
z = funktion (n)
print (z)

Dazu die Frage welches Ergebnis es liefert.


Meine Ideen:
von Hörensagen hab ich mitbekommen das es das Ergebnis 55 liefert. allerdings hab ich keine Ahnung worum es bei dem Programm geht und wie man auf 55 kommt
Danke im voraus für eure erkläungen
17.02.2018 22:21 Informatikdepp ist offline Beiträge von Informatikdepp suchen Nehmen Sie Informatikdepp in Ihre Freundesliste auf
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Du kannst ja eben so vorgehen, wie der Computer:
Die Funktion wird erst mit 10 als Argument aufgerufen. 10 ist größer als 1, also gibt die Funktion 10 plus den Funktionswert von 9 zurück.
Der Funktionswert von 9 ist 9 plus der Funktionswert von 8
Der Funktionswert von 8 ist 8 plus der Funktionswert von 7
Der Funktionswert von 7 ist 7 plus der Funktionswert von 6
Der Funktionswert von 6 ist 6 plus der Funktionswert von 5
Der Funktionswert von 5 ist 5 plus der Funktionswert von 4
Der Funktionswert von 4 ist 4 plus der Funktionswert von 3
Der Funktionswert von 3 ist 3 plus der Funktionswert von 2
Der Funktionswert von 2 ist 2 plus der Funktionswert von 1
Der Funktionswert von 1 ist 1 (das ist der Rekursionsabbruch)
Ab hier kannst Du rückwärts einsetzen, also gehst Du die ganze Liste wieder aufwärts:
Der Funktionswert von 2 ist 2 plus der Funktionswert von 1, den kennen wir jetzt, der ist nämlich 1, so dass die Funktion dann den Wert 1+2 = 3 zurück gibt.
Der Funktionswert von 3 ist 3 plus der Funktionswert von 2, den kennen wir jetzt, der ist nämlich 1+2=3, so dass die Funktion dann den Wert 1+2+3 = 6 zurück gibt.
Der Funktionswert von 4 ist 4 plus der Funktionswert von 3, den kennen wir jetzt, der ist nämlich 1+2+3, so dass die Funktion dann den Wert 1+2+3+4 zurück gibt.
Und so weiter. Die Funktion rechnet also immer die Summe aller Zahlen von 1 bis zu dem Funktionswert aus.
Das kann auch die Gaußsche Summenformel. Die geht einfach: [latex]\sum_{k=1}^n k = \frac{n\cdot\left(n+1\right)}{2}[/latex] Wenn man hier n=10 einsetzt, rechnet man (10*11)/2 = 55

Gruß
Marco
18.02.2018 10:28 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Proogramm mit Rekursion