Skip to content

Rekürsif fonksiyon nedir?

Eylül 2021 düzenlendi kategorisi Bilim

Rekürsif fonksiyonlar, kısaca kendi kendini oluşturan fonksiyonları betimler. Rekürsiyon aslında problem çözme stratejilerinden bir tanesidir. Prensip olarak genel bir sorunu daha küçük ve basit soruna indirgeyerek sorun çözme yöntemidir. Program yazılımcılar tarafından çok zevkle kullanılan yöntem çoğu problemlere de ışık tutar. Prensip olarak rekürsif fonksiyonlar şöyle tanımlanır: Bir fonsiyonun f(n+1) değeri ondan önceki hesaplanmış f(n), f(n-1), … değerleri tarafından belirlenir. Bu tür fonksiyonlar kendi başlarına bırakılırsa sonsuza kadar devam ederler. Bu nedenle önceden belirlenmiş sınırlar ulaşıldığında rekürsif fonksiyonu hesabı sonlandırır.

Fibonaccı serisi klasik rekürsif bir fonksiyondur. Bilinen sayılar şöyledir:

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

Başlangıç değerleri ile fib(0)=0 ve fib(1)=1 fibonaccı serisi için şö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;

Rekürsif fonksiyonların önemi fraktal fonsiyonlarda da görülmektedir. Mesela Pitagoras ağacı diye de anlandırılan ağaç rekürsif yapılmıştır.

Bu resimlere baktığımızda şöyle yargıya varmak pek de şaşırtıcı olmamalı: büyük problemler küçük problemlere indirgenebiliyor. Daha da ilginç olan taraf iterasyon ilerledikçe öne serilen resim o kadar netleşiyor ki bu resmin kendi kendi tarafından oluşacağına inanmak zorlaşıyor. Bu resim mutlaka bir “ressam” tarafından yapılmış olmalı diyoruz.

Hayata baktığımızda da iterasyonun başlangıcı sadece bir döllenmiş yumartadır. Ondan sonra yumurta bölünüyor ve bölünün hücreler de bölünüyor. En kısa zamanda esrarengiz bir hal alıyor. Hücrelerdeki bölünme olayı yukardaki anlatılan rekürşif olaydan biraz daha karmaşık, çünkü hücreler bulunduğu bölgelerden de geri bildirim alarak kaotik bir bölünme sergilemiyorlar. O aldıkları enformasyonlarla hangi genlerin açılıp kapanacağını öğreniyorlar, bu da bölünmeye yön veriyor.

Agorasonsuz[Silinen Kullanıcı]karga

Yorumlar

  • Bunlar fraktal yapılar, borsa da fraktal yapıya sahiptir.

    sonsuzBilişim
  • Zevkli olduğu kadar da maliyetli, tail recursion dışında çok fazla hafıza tüketiyorlar. F# dili direk kullanmaya izin vermiyor diye biliyorum.

    Bu arada Türkçe çevirisi olarak da "özyineleme" denmesini daha uygun buluyorum. Pythagoras da İngilizce'de Pisagor demek, pisagor ağacı demek daha uygun sanırım

    kargasonsuzBilişim
  • Bence "agora" yerine ismine "meydan" demeliydin. :-)

    sonsuz
  • İsmimi kendim uydurdum, anlamı için kullanmıyorum. Zamanla öğrendim ki bir kelimenin okunuşu kolay ve kısa ise bol bol kullanılıyor. Portekizce'de "şimdi" demek ve kız ismi olarak kullanılıyor. Agorafobi de var

    karga
  • Sorun neyin ne olduğu değil. Birine "Türkçe kelime kullanın!" öğütü verirken kendinizin yabancı kelime kullanması hoş oluyor.

    Agora
Yorum yapmak içinOturum Açın yada Kayıt Olun .