Negative Fibonacci Folge rekursiv lösen

schlelia

Aktives Mitglied
Hallo,
ich muss eine negative Fibonacci Folge rekursiv lösen.
Z.b. f-4(x) = f-5(x) + f-6(x)
Das hab ich bis jetzt, Für postive Zaheln funktioniert es schon. Aber anscheinend ist meine Rekursionstiefe falsch. Ist hier irgendwo ein Fehler? (nfrc einfach nicht beachten)
Java:
public class NegaFibonacci {
    public static int negaFibo(int k, NegaFiboRecCheck nfrc) {
        nfrc.nfrc(k);
        int vorz = 0;

        if (k == 0 || k == 1) {
            return k;
        }
        if (k < 0)
            return negaFibo(k * -1,nfrc) * -1;
        else {
            return negaFibo(k - 1,nfrc) + negaFibo(k - 2,nfrc);
        }
    }
}
 
K

kneitzel

Gast
Also Deinen Text kann ich so nicht nachvollziehen. Was genau meinst Du bitte?

Wenn Du die Fibonacci-Reihe generalisieren möchtest, dann kommst sowas dabei raus:

Ein f(x) = f(x-1) + f(x-2) für negative x ist schlecht - denn da hast Du das Endet ja nie! (bzw. bei Java hast Du dann irgendwann ein Overflow).
(Für den Fall, dass Dein f-4(x) = f-5(x) + f-6(x) heissen sollte: f(-4) = f(-5) + f(-6) - Deine Berechnung macht ja schon was anderes bei negativem k)

Und wenn Du den Ansatz von dem Link verfolgst, dann ist das * -1 schlicht falsch. Und man kann statt *-1 einfach ein - davor setzen:
return -negaFibo(-k,nfrc);
 

Neue Themen


Oben