|
|
|
Zähler einfügen in Fibonacci Funktion |
|
| Extremes |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.05.2012, 20:03
Titel: Zähler einfügen in Fibonacci Funktion
|
 |
Hallo,
ich habe eine kleine Frage und gehe mal davon aus, dass ich hier Hilfe finden werde.
Ich sitze an der Aufgabe die n-te Fibonacci Zahl rekursiv zu berechnen.
Das ist nun kein Problem, das habe ich ohne weiteres geschafft.
Zusatz der Aufgabe ist es, wahrscheinlich um deutlich zu machen, dass die rekursive Berechnung ungünstig ist, einen Zähler einzubauen, der sich um 1 erhöht, jedesmal, wenn die Funktion aufgerufen wird. Das heißt also bei jedem neuen fibonacci(...).
Dies ist mein bisheriges Programm
Mein Problem ist jetzt, an welche Stelle ich den Zähler noch einsetzen muss und mit welcher Schleife o.Ä.
Habe es schon mit einer Hilfsvariablen mit for-Schleife um den kompletten Programmcode herum versucht.
Weitere Versuche sind ebenfalls gescheitert.
Langsam glaube ich vielleicht auch, dass ich schon zu lange an der Aufgabe sitze und "den Wald vor lauter Bäumen nicht sehe".
Ich brauche Hilfe.
Danke im voraus
|
|
|
|
|
|
| Thomas84 |

Forum-Meister
|
 |
Beiträge: 546
|
 |
|
 |
Anmeldedatum: 10.02.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.05.2012, 06:46
Titel:
|
 |
Hallo,
mit der Hilfe von persistent habe ich es hinbekommen. Damit kannst du die Zählvariable abspeichern.
viele Grüße
Thomas
|
|
|
|
| MaFam |

Forum-Meister
|
 |
Beiträge: 799
|
 |
|
 |
Anmeldedatum: 02.05.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 16.05.2012, 08:29
Titel:
|
 |
|
|
|
| Thomas84 |

Forum-Meister
|
 |
Beiträge: 546
|
 |
|
 |
Anmeldedatum: 10.02.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.05.2012, 13:23
Titel:
|
 |
Die Lösung hat den Nachteil das man ein zweites Argument übergeben muss. Ausserdem bekomme ich bei
n = 1. Es sollte doch eher 3 herauskommen!?
Für Zahlen größer 3 kommt in meiner Berechnung immer n = fib*2-1 heraus, bei deiner n = fib*2-2.
|
|
|
|
| MaFam |

Forum-Meister
|
 |
Beiträge: 799
|
 |
|
 |
Anmeldedatum: 02.05.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 16.05.2012, 14:13
Titel:
|
 |
Hallo Thomas,
die Übergabe eines zweiten Argumentes wird doch ohnehin vollzogen. Ich speichere dies doch nur ab. Insofern sehe ich keinen wirklichen Nachteil.
Den Rest deines Beitrages verstehe ich nicht so recht. Für fibonacci(3,0) ist der Zähler 5 und der Wert der Folge 2, wenn fibonacci(0,0):=0 und fibonacci(1,0):=1. Das ist die Standarddefinition.
Der Zähler lässt sich schon über n = fib*2-1 abschätzen. Dabei muss man aber das Argument um 1 erhöhen. Siehe Folgebeitrag.
Edit: Durch den "Trick" mit fib=1 für n=1 und n=2 wird die Rekursion erst ab n=3 aufgerufen. Das spart rekursive Aufrufe für n=2.
Grüße, Marc
Zuletzt bearbeitet von MaFam am 16.05.2012, 15:03, insgesamt einmal bearbeitet
|
|
|
|
| MaFam |

Forum-Meister
|
 |
Beiträge: 799
|
 |
|
 |
Anmeldedatum: 02.05.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 16.05.2012, 15:01
Titel:
|
 |
Der Zähler entspricht hier selbst einer Fibonacci-Folge. Es gilt:
Die explizite Folge lautet somit:
Diese kann auch über die ursprüngliche Folge ausgedrückt werden:
Dabei ist darauf zu achten, dass das Argument um 1 erhöht wird.
|
|
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|