PYthoN Aufg richtig verstehen.

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
mara1015
User
Beiträge: 11
Registriert: Freitag 13. Juli 2012, 16:17

Ich habe folgendes Programm:

Code: Alles auswählen

def harmon(n):
    if n==1: return 1
    return harmon(n-1.0)+ 1.0/n
Es ist zwar richtig, (geht um die harmonische Reihe), aber ich habe Verständnis Probleme,

wenn ich def(6) habe, kommt als Ergebnis 2,44999 raus

Aber , wenn ich versuche das Programm nach zu verstehen, erhalte ich ein anderes Egebnis:

Ich mache doch:

harmon(n-1.0) --> (6-1) --> 5
plus
1.0/6
Als Erg. somit 5+ 1.0/6

aber das sind keine 2,449999
wo ist mein Denkfehler?
Zuletzt geändert von Anonymous am Sonntag 15. Juli 2012, 16:24, insgesamt 1-mal geändert.
Grund: Code-Tags hinzugefügt
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Der Fehler ist, dass `harmon(5)` immernoch Rekursionsschritte hat und kein direktes Ergebnis hat, siehe auch dein anderer Thread.
mara1015
User
Beiträge: 11
Registriert: Freitag 13. Juli 2012, 16:17

werde s gleich mal ausprobieren. danke für die Hilfe
mara1015
User
Beiträge: 11
Registriert: Freitag 13. Juli 2012, 16:17

Hmm... dann müsste ich ja folgendes machen:


(5+1/6 )+(4+1/5)+(3+1/4)+(2+1/3)+1

oder?
Benutzeravatar
/me
User
Beiträge: 3554
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Schau dir den Ablauf deines Skripts mal mit http://people.csail.mit.edu/pgbovine/py ... #mode=edit an.

Code: Alles auswählen

def harmon(n):
    if n == 1: 
        return 1
    return harmon(n - 1.0) + 1.0 / n

print harmon(6)
Antworten