Freitag, 13. Dezember 2013

Rekürsiyon nedir?

Rekursif fonksiyonlarindan bahsederken o kendi kendini olusturan fonksiyonlari betimler. Rekursiyon aslinda problem cözme stratejilerinden bir tanesidir. Prinsip olarak genel bir sorunu daha kücük ve basit soruna indirgeyerek sorun cözme yöntemidir. Program yazilimcilar tarafindan cok zevkle kullanilan yöntem cogu problemlere de isik tutar. Prensip olarak rekursif fonksiyonlar söyle tanimlanir: Bir fonsiyonun f(n+1) degeri ondan önceki hesaplanmis f(n), f(n-1), ... degerleri tarafindan belirlenir. Bu tür fonksiyonlar kendi baslarina birakilirsa sonsuza kadar devam ederler. Bu nedenle önceden belirlenmis sinirlar ulasildiginda rekursif fonksiyonu hesabi sonlandirir.

Fibonacci serisi klasik rekursif bir fonsiyondur. Söyle bilinen sayilar söyledir:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34,....

Baslangic degerleri ile fib(0)=0 ve fib(1)=1 fibonacci serisi icin söyle bir fonksiyon verilebilir:

fib(n)=fib(n-1)+fib(n-2), n>1.

Örnek fib(3):

fib(2)=fib(1)+fib(0)=1+0;
fib(3)=fib(2)+fib(1)=1+1=2;
fib(4)=fib(3)+fib(2)=2+1=3
fib(5)=fib(4)+fib(3)=3+2=5;

Rekursif fonksiyonlarin önemi fraktal fonsiyonlarda da görülmektedir. Mesela Pitagoras agaci diye de anlandirilan agac rekursif yapilmistir.

Bu resimlere baktigimizda söyle yargiya varmak pek de sasirtici olmamali: büyük problemler kücük problemlere indirgenebiliyor. Daha da ilginc olan taraf iterasyon ilerledikce öne serilen resim o kadar netlesiyor ki bu resmin kendi kendi tarafindan olusacagina inanmak zorlasiyor. Bu resim mutlaka bir "ressam" tarafindan yapilmis olmali diyoruz.

Hayata baktigimizda da iterasyonun baslangici sadece bir döllenmis yumartadir. Ondan sonra yumurta bölünüyor ve bölünün hücreler de bölünüyor. En kisa zamanda esrarengiz bir hal aliyor. Hücrelerdeki bölünme olayi yukardaki anlatilan rekursif olaydan biraz daha karmasik, cünkü hücreler bulundugu bölgelerden de geri bildirim alarak kaotik bir bölünme sergilemiyorlar. O aldiklari enformasyonlarla hangi genlerin acilip kapanacagini ögreniyorlar, bu da bölünmeye yön veriyor.

Biliyorum burada cok eksikler var ama sizin de katkiniz ile eksik yerleri tamamlayabiliriz.

Keine Kommentare:

Kommentar veröffentlichen