Есть ли лучший способ (производительность) для расчета фибоначчи, чем этот?
Я сделал этот код .. И мне нужно получить лучшее из этого .. Мне действительно нужна лучшая производительность вычисления чисел Фибоначчи .. Пожалуйста, помогите быть ..
Я прочитал некоторый код этого типа расчетов, и я думаю, что я получил лучший из них ..
Отменить это для меня .. плз ..
PS: И мне действительно нужен BigInteger .. Я буду вычислять Фибоначчи огромных чисел
PS2: я рассчитал несколько больших чисел с этим алгоритмом, и я получил большое время отклика .. но мне нужно знать, может ли это быть лучше
PS3: для запуска этого кода вам нужно использовать этот аргумент VM-Xss16384k
(STACKSIZE)
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;
}
}