Gibt es einen besseren Weg (Leistung) Fibonacci zu berechnen als diesen?
Ich habe diesen Code gemacht. Und ich muss das Beste daraus machen. Ich brauche wirklich die beste Leistung bei der Berechnung von Fibonacci-Zahlen. Bitte helfen Sie mit.
Ich habe einen Code dieser Art von Berechnung gelesen und ich denke, ich habe das Beste daraus.
Avaliate das für mich .. PLZ ..
ps: Und ich brauche wirklich die BigInteger .. Ich werde Fibonacci von enormen Zahlen berechnen
ps2: Ich habe mit diesem Algorithmus einige große Zahlen berechnet und habe eine großartige Reaktionszeit. Aber ich muss wissen, ob es besser sein könnte
ps3: Um diesen Code auszuführen, müssen Sie dieses VM-Argument verwenden-Xss16384k
(Stapelgrösse)
public class Fibonacci {
private static BigInteger[] fibTmp = { BigInteger.valueOf(0), BigInteger.valueOf(1) };
public static BigInteger fibonacci(long v) {
BigInteger fib = BigInteger.valueOf(0);
if (v == 1) {
fib = BigInteger.valueOf(1);
} else if (v == 0) {
fib = BigInteger.valueOf(0);
} else {
BigInteger v1 = fibonacci(v - 1);
BigInteger v2 = fibTmp[(int) (v - 2)];
fib = v1.add(v2);
}
synchronized (fibTmp) {
if (fibTmp.length - 1 < v)
fibTmp = Arrays.copyOf(fibTmp, (int) (v + 10));
fibTmp[(int) v] = fib;
}
return fib;
}
}