Bu yazımda Fibonacci sayılarını C# ile hem recursive yöntem ile hem de dinamik programlama yöntemi ile bulan algoritmanın kodlarını sizlerle paylaşacağım.
- Yazılım Uzmanları
- 14 Mayıs 2018
- 1500 kez görüntülendi.
Bu yazımda Fibonacci sayılarını C# ile hem recursive yöntem ile hem de dinamik programlama yöntemi ile bulan algoritmanın kodlarını sizlerle paylaşacağım. Bilindiği gibi Fibonacci sayıları meşhur tavşan üreme problemi üzerine Fibonacci tarafından bulunan ve altın oran olarak ta bilinen sayılar kümesidir. Ayrıca bu sayılar dizisi birçok bitki yapısı için de geçerlidir. 0 ile başlar ve her sayı kendinden önceki iki sayının toplamı şeklinde gider. Şimdi bu sayıları hem recursive yöntem ile hem de dinamik programlama yöntemi ile bulan C# kodlarına göz atalım.
Vereceğim kodlarda iki yöntem için de metot hazırladım ve bu metotlar parametre olarak aldıkları index değerleri ile o indexte yer alan fibonacci değerini bulmakta. Bu metotlar ve kullanımı aşağıdaki gibi.
/*Dinamik programlama*/ public int[] fibonacci_sayilari; public int fibonacci_dinamik_programlama(int kacinci) { for (int i = 0; i <= kacinci; i++) { if (i == 0 i == 1) { fibonacci_sayilari[0] = 1; fibonacci_sayilari[1] = 1; } else { fibonacci_sayilari[i] = fibonacci_sayilari[i - 1] + fibonacci_sayilari[i - 2]; } } return fibonacci_sayilari[kacinci]; } /*recursive*/ public int fibonacci_recursive(int kacinci) { if (kacinci <= 1) return 1; return fibonacci_recursive(kacinci - 1) + fibonacci_recursive(kacinci - 2); } // 5. index'te yer alan fibonacci değerini hesaplama int deger1 = fibonacci_recursive(5); fibonacci_sayilari = new int[6]; int deger2 = fibonacci_dinamik_programlama(5);
Bu şekilde fibonacci sayılarını bulabiliyoruz. Recursive algoritma performans olarak dinamik algoritmanın oldukça gerisinde. Ancak değişken sayısından ve kullandığı hafıza açısından dinamik programlamaya göre avantajlı olsa da dinamik programlama recursive algoritmaya göre oldukça hızlı ve performanslı.
İyi Çalışmalar.
Bu yazıya 0 yorum yapılmış.