Einzelnen Beitrag anzeigen
Ungelesen 27.04.12, 11:34   #2
Robar666
Anfänger
 
Registriert seit: Apr 2012
Beiträge: 43
Bedankt: 16
Robar666 ist noch neu hier! | 0 Respekt Punkte
Standard

Um zu prüfen ob es die "Original" Fibonacci Reihe ist würde ich schauen ob das 1.Element 0 und das 2. Element 1 ist, danach kannst du ja jedes Element mit f(n) = f(n-1) + f(n-2) prüfen.

EDIT
Aso leider erst jetzt gesehen, das man auf einen AUSSCHNITT der Original Reihe prüfen soll. Naja dann würde ich zuerst schauen ob die erste Zahl Teil der Original Fibnoacci-Reihe ist und danach prüfen ob das übergebene Array die Fibnoacci Eigenschaften erfüllt (f(n) = f(n-1) + f(n-2)).


EDIT 2
Bevor die Frage auftaucht wie du weißt ob eine Zahl Teil der Original Fibnoacci-Reihe ist, hier zwei Lösungsvorschläge:

1.

Die Original-Reihe solang generieren bis man bei der gesuchten Zahl angelangt ist oder sie überschritten hat.
-> Langsam

2.

Mit dieser Formel: http://de.wikipedia.org/wiki/Fibonac....C3.9Fe_Zahlen rausfinden ob eine Zahl Teil der Fibonacci-Reihe ist:

Code:
private static boolean isFibByFormula(long num) {
    double power = (double)num * (double)num;
    double first = 5 * power + 4;
    double second = 5 * power - 4;

    return isWholeNumber(Math.sqrt(first)) || isWholeNumber(Math.sqrt(second));
}
(Geklaut von: http://stackoverflow.com/questions/3...umber-homework)
Robar666 ist offline   Mit Zitat antworten