Fibonacci-Reihe bis in eine Tiefe von x

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
Benutzeravatar
Craven
User
Beiträge: 223
Registriert: Dienstag 24. Januar 2006, 13:37

Code: Alles auswählen

    file2.write(str(fibo[-1]))
IOError: (0, 'Error')
:wink:
[code]q = 'q = %s; print q %% repr(q)'; print q % repr(q) [/code]
BlackJack

Deine `resuming()` Funktion funktioniert nicht. Man kann nicht einfach Zeilen vom Dateiende her mit negativen Zahlen ansprechen. Die Angabe ist die Puffergrösse die Python zum lesen von Zeilen benutzen soll. Werte >0 geben die Maximallänge an, Werte <=0 haben keinen Effekt. Du liest dort immer die ersten beiden Zeilen ein.

Und 'a+' ist als Dateimodus höchst undefiniert. Man sollte Dateien die man mit 'a' öffnet nur schreiben, nicht lesen und kein `seek()` durchführen.
Benutzeravatar
Craven
User
Beiträge: 223
Registriert: Dienstag 24. Januar 2006, 13:37

Hi Blackjack!

Danke für deine Antwort

Hast du eine Idee/Tipp, wie ich das realisieren könnte?
Ansonsten gehts auch ohne resuming, was eher als test gedacht war ... :wink:

MfG,
Craven
[code]q = 'q = %s; print q %% repr(q)'; print q % repr(q) [/code]
Benutzeravatar
Michael Schneider
User
Beiträge: 569
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Brandenburg

Craven hat geschrieben:Hast du eine Idee/Tipp, wie ich das realisieren könnte?
Ansonsten gehts auch ohne resuming, was eher als test gedacht war ... :wink:
Hi Craven,

erstmal generell statt "a+" sowas:

Code: Alles auswählen

try:
    file2 = open(Pfad, "r+")
    file2.seek(0,2)    ##  Cursor zum Dateiende
except IOError:
    file2 = open(Pfad, "w+")
Ich habe mich noch nicht weiter in den Code reingedacht, aber wenn Du nur die beiden letzten Werte brauchst (zum Addieren), dann solltest Du die nicht dauernd speichern und neu lesen. Das bremst unnötig.

Grüße,
Michael
Diese Nachricht zersört sich in 5 Sekunden selbst ...
Ezechielpitau
User
Beiträge: 7
Registriert: Freitag 25. August 2006, 16:00

Ansonsten gibt es auch eine nicht-rekursive Funktion zur Berechnung. Dann sinnvoll, wenn du nur den Wert für einzelne, sehr große Zahlen berechnen willst und nicht die ganze Reihe.

siehe Formel von Binet http://www.ijon.de/mathe/fibonacci/node2.html#0002200
Antworten