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

Informatiker Board » Themengebiete » Theoretische Informatik » Rekursion zu Iteration umwandeln » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 3 Beiträge
Tobias

Die Lösung steht da doch schon. Du musst sie nur noch abschreiben:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:

a = 2
b = 1
c = 2

Wiederhole n mal:
  tmp_a = 6*a + 2*c + b
  b = a
  c = 3*a + c
  a = tmp_a

Gib b zurück.



Die Idee dazu ist folgende:

Zuerst einmal setzen wir die Rekursionsvorschriften in f(n) ein:

[latex]f(n) = 2h(n) + f(n-2) = 2\left(h(n-1) + 3f(n-1)\right) + f(n-2) = 2h(n-1) + 6f(n-1) + f(n-2)[/latex]

Wenn wir also f(n-2), f(n-1) und h(n-1) kennen würden, könnten wir f(n) ganz einfach mit obiger Formel berechnen. Die Formel nennen wir mal [latex]\phi(a, b, c) = 6a + b + 2c[/latex].

[latex]f(n) = \phi\big(f(n-1), f(n-2), h(n-1) \big) = \phi(a, b, c)[/latex]

[latex]f(n+1) = \phi\big(f(n), f(n-1), h(n) \big) = \phi\big(\phi(a, b, c), a, 3a+c \big)[/latex]

Der Trick ist nun, die Rekursion durch sukkzessivem Berechnen von f(2), f(3), ... aufzulösen:

[latex]f(2) = \phi\big(f(1), f(0), h(1) \big) = \phi(2, 1, 2) = 12 + 1 + 4 = 17[/latex]
[latex]f(3) = \phi\big(f(2), f(1), h(2) \big) = \phi(\phi(2, 1, 2), 2, 3f(1) + h(1)) = ...[/latex]
ed209

Mit deiner Lösung kann ich momentan überhaupt nichts anfangen, mir ist die SChreibweise völlig unbekannt.

Ich würde Dir vorschlagen erstmal aufzuschreiben, wie du vorgehen würdest, wenn du die nächsten 3 f(n) per Hand ausrechnen würdest und dann mal guckst, ob Du ein System entdeckst.

Gruß,
ED
flawZ Rekursion zu Iteration umwandeln

Hallo allerseits!


Und zwar habe ich große Probleme bei Aufgaben des folgenden Typs:

Seien f, g Funktionen von N --> N mit

f(0) = 1; f(1) = 2; h(1) = 2;

f(n + 1) = 2 * h(n + 1) + f(n - 1);
h(n + 1) = h(n) + 3 * f(n)

Nun soll das iterative Verfahren iter zur Berechnung von f(n) aufstellen.

Als Lösung muss folgendes herauskommen:

Setze a = f(n - 1); b = f(n - 2); c = h(n - 1);

Beginne mit f(n) = iter(n,2,1,2).

iter(n,a,b,c) = iter(n - 1, 6a + 2c + b, a, 3a + c);
iter(0,a,b,c) = b

Nun stehe ich hier total auf dem Schlauch, weiß nicht, warum und wie
ich was wähle, wie ich hier überhaupt vorgehe.

Es wäre echt prima, wenn mir jemand wenigstens den Ansatz bei der
Vorgehensweise bei solchen Aufgaben nennen könnte, denn ich
komm hier echt nicht weiter..

Vielen Dank schonmal!