Konstruktion einer rekursiven Funktion |
eggi unregistriert
|
|
Konstruktion einer rekursiven Funktion |
|
Hallo!
Hoffe dass meine Fragestellung in das Forum passt.
Und zwar geht es um um die Kochkurve.
Ich soll eine rekursive Funktion schreiben, die für die n-te Kochkurve die Ecken bzw. Knicke berechnet.
Ich weiß bereits dass es durch 4^n -1 definiert ist.
Kann mir einer einen Tipp geben wie ich diese Funtkion rekursiv darstellen kann?
0 soll auch Element aus N sein.
|
|
29.11.2009 18:23 |
|
|
JoTheGunny
Jungspund
Dabei seit: 12.11.2008
Beiträge: 10
Herkunft: NRW
|
|
Wenn es (4^n)-1 ist, ist es doch recht einfach, du hast eine Funktion mit einen Parameter ( n ) und lässt bei jedem rekursiven Durchgang n um eins dekrementieren ( beim neuen aufruf um eins vermindert übergeben ). Dann musst du noch die Abbruchbedingung setzen, damit es nicht unendlich tief geht.
Normaler durchgang: return 4 * rek( n-1 ); bei h der rekursion solltest du noch die -1 subtrahieren.
|
|
30.11.2009 18:08 |
|
|
eggi unregistriert
|
|
Soweit bin auch gekommen.
Nur wenn er für 0 als letztes n reingeht soll er ja auch 0 ausgeben.
Nur ist dann die Sache dass er die komplette Funktion dann mal 0 nimmt und es dann wieder nicht stimmt.
|
|
30.11.2009 19:54 |
|
|
JoTheGunny
Jungspund
Dabei seit: 12.11.2008
Beiträge: 10
Herkunft: NRW
|
|
Zitat: |
Original von eggi
Soweit bin auch gekommen.
Nur wenn er für 0 als letztes n reingeht soll er ja auch 0 ausgeben.
Nur ist dann die Sache dass er die komplette Funktion dann mal 0 nimmt und es dann wieder nicht stimmt. |
Eine Zahl mit der Potenz 0 ergibt immer 1, daher musst du per if abfragen ob es eine 0 ist und dann eine 1 zurückgeben. Das wäre der einfachste weg.
|
|
01.02.2010 20:49 |
|
|
AxelF unregistriert
|
|
Das Thema Kochkurve wird sehr ausführlich im Buch "Bausteine des Chaos Fraktale" (ISBN 3-540-55781-4 des Springer Verlages Autoren: Peitgen, Jürgens, Saupe, Erscheinungsjahr 1992) besprochen. Anbei ist auch ein Basic-Programm auf Seite 220, welches die Kochkurve grafisch darstellt.
Mit ein wenig Grundkenntnissen von Basic lässt sich dieses Programm ohne Probleme in eine moderne Sprache z.B. Java übersetzen ;-). Dort wird mit einem Array zur Speicherung der Koordinaten der Punkte gearbeitet.
Innerhalb der Rekursion wird zunächst das linke Teilstück, anschließend der linke mittlere Teil, dann der rechte mittlere Teil und zuletzt das rechte Teilstück erzeugt. ;-)
|
|
17.02.2010 16:52 |
|
|
|