22 Ocak 2012, Pazar
Java recursive Fibonacci dizisi
Bu kod (basit ama lütfen beni mazur görün hala bir çaylak olduğum için :P) açıklayınız:
public int fibonacci(int n) {
if(n == 0)
return 0;
else if(n == 1)
return 1;
else
return fibonacci(n - 1) fibonacci(n - 2);
}
Örneğin özellikle n çünkü eğer son satır = 5 ile, sonra kafam karıştı (4) fibonacci(3) adını alacak ve benzeri ama bu algoritma, bu yöntemle dizin 5 değerini hesaplar anlamıyorum fibonacci. Lütfen bir çok detay ile açıkla!
CEVAP
22 Ocak 2012, Pazar
Fibonacci dizisi her öğeyi bir önceki toplamıdır. Yani, özyinelemeli bir algoritma yazdı.
Yani
fibonacci(5) = fibonacci(4) fibonacci(3)
fibonacci(3) = fibonacci(2) fibonacci(1)
fibonacci(4) = fibonacci(3) fibonacci(2)
fibonacci(2) = fibonacci(1) fibonacci(0)
Şimdi zaten fibonacci(1)==1 and fibonacci(0) == 0
. Bu yüzden, daha sonra diğer değerleri hesaplayabilirsiniz.
Şimdi
fibonacci(2) = 1 0 = 1
fibonacci(3) = 1 1 = 2
fibonacci(4) = 2 1 = 3
fibonacci(5) = 3 2 = 5
Ve fibonacci dizisi 0,1,1,2,3,5,8,13,21....
5th element
fibonacci dizisi 5
döndüren görebiliriz.
Recursion Tutorial görmek için buraya tıklayınız.
Bunu Paylaş:
İnputStream Java bayt dizisi dönüştürm...
Java listesinde dönüştürme dizisi...
Java Dize dizisi için ArrayList içeren...
Nasıl Java hex bir dize bir bayt dizis...
Bir bayt dizisi Java kullanarak bir he...