Sayıların Dili, OYUN, Şubat 2008

Doğanın Çoğalma Formülü

Timur Karaçay

tkaracay@baskent.edu.tr

 

 

Leonardo Fibonacci

Leonardo Fibonacci (Piza'lı Leonardo, Leonardo Pisano) (1175-1250)

Leonardo, İtalya’nın Piza kentinde doğdu. Kuzey Afrika’da gümrük memurluğu yapan babasıyla birlikte olduğu zamanlarda Hint-Arap rakamlarını ve onlu sayıtlama dizgesini öğrendi. 1200 yılında Piza’ya geri döndü. O tarihlerde Avrupa kıtası onlu sayıtlama sistemini bilmiyor ve dolayısıyla dört işlemi (toplama, çıkarma, çarpma,bölme) bu gün yaptığımız gibi kolay yapamıyorlardır. Bunun zorluğunu anlamak için, Roma rakamlarıyla işlem yapmayı deneyebilirsiniz. Piza’ya döndükkten sonra, Kuzey Afrika’da öğrendiği onlu sayıtlama sistemiyle dört işlem yapmayı anlatan Liber Abaci (Hesap Kitabı) adlı ünlü kitabını yazdı. Bu kitap, Avrupa kültür dünyasına bırakılan önemli yapıtlardan birisidir.  

Liber Abaci’de yer alan aşağıdaki problem, bu gün özyineli (recursive) fonksiyonlara önemli bir örnek oluşturur ve bilgisayar programlamayı anlatan her ciddi ders kitabında yer alır. Ayrıca, şimdi kurucusunun adına izafe edilerek Fibonacci sayıları diye anılan bu dizi, doğada çoğalmayı açıklamaya yarayan bir araç olduğu gibi, geçen yazılarımızda konu ettiğimiz altın oran ile de ilişkilidir. Bu nedenlerle, Fibonacci Sayıları çok farklı bilimsel araştırmalara kaynak olmuştur. 

Tavşanlar nasıl Çoğalır?

Genç Leonardo Fibonacci’nin 1202 yılında Liber Abaci adlı kitabında sorup yanıtladığı aşağıdaki soruyu, kolay anlaşılır olması için varsayımlarına ayırarak yazacağız:

Aşağıdaki paragraflarda bir tavşan çifti deyince, bir erkek tavşan ile bir dişi tavşandan oluşan ikiliden söz ediyor olacağız.  

Varsayımlar:

1.                  Aylar arasında fark gözetmiyor ve yavrulamaların her ayın ilk gününde olduğunu kabul ediyoruz.

2.                  Her tavşan çifti doğumlarından iki ay sonra yavrulamaya başlıyor.

3.                  Her çift yavrulamaya başladıkları aydan itibaren her ay biri erkek biri dişi olan bir çift yavru doğuruyor.  

4.                  Bir yıl süreyle hiç bir tavşan ölmüyor.

Soru:

1 Ocak günü yeni doğmuş bir erkek tavşan ile bir dişi tavşandan oluşan bir çift tavşan alsak, bir yıl sonra kaç çift tavşanımız olur?

Elbette, yukarıdaki varsayımlar, doğa yasalarına tam uymaz. Her batında bir erkek bir dişi tavşan doğmaz. Tavşanların hiç birisinin ölmeden bir yıl yaşayacağını da garanti edemeyiz. Ama biz bu varsayımlar altında problemin çözümünü arıyoruz.

Soruyu yanıtlamak kolaydır; bu iş için elle bir çetele tutmak yetecektir. Bu çeteleyi oluştururken, yukarıdaki resimden ilham alabiliriz.  

1 Ocak:           1 çift tavşanımız var.

1 Şubat:           Henüz yeni yavrulama olmayacağı için, tavşan sayımız 1 çiftten ibarettir.

1 Mart:            İlk çiftten iki ay sonra ilk yavru çift doğacağı için 2 çift tavşanımız olur.

1 Nisan:           İlk çift yeni bir çift daha yavrular, ama Mart ayında doğan çift henüz yavru vermeyecektir. Tavşan sayımız 3 çift olur.

1 Mayıs:          Ocak ve Mart doğumlu çiftlerden birer çift doğar, Nisan doğumlu çift henüz yavru vermez. Tavşan sayımız 5 çift olur.

1 Haziran:        Ocak, Mart ve Nisan doğumlu çiftler birer çift yavru verir, Mayıs doğumlu çiftler henüz yavru vermez. Tavşan sayımız 8 çift olur.

1 Temmuz:      Ocak, Mart, Nisan ve Mayıs doğumlu çiftler birer çift yavru verir, Haziran doğumlu çiftler henüz yavru vermez. Tavşan sayımız 13 çift olur.

1 Ağustos:       Ocak, Mart, Nisan, Mayıs ve Haziran doğumlu çiftler birer çift yavru verir, Temmuz doğumlu çiftler henüz yavru vermez. Tavşan sayımız 21 çift olur.

1 Eylül:            Ocak, Mart, Nisan, Mayıs, Haziran ve Temmuz doğumlu çiftler birer çift yavru verir, Ağustos doğumlu çiftler henüz yavru vermez. Tavşan sayımız 34 çift olur.

1 Ekim:             Ocak, Mart, Nisan, Mayıs, Haziran, Temmuz ve Ağustos doğumlu çiftler birer çift yavru verir, Eylül doğumlu çiftler henüz yavru vermez. Tavşan sayımız 55 çift olur.

1 Kasım:          Ocak, Mart, Nisan, Mayıs, Haziran, Temmuz, Ağustos ve Eylül doğumlu çiftler birer çift yavru verir, Ekim doğumlu çiftler henüz yavru vermez. Tavşan sayımız 89 çift olur.

1 Aralık:          Ocak, Mart, Nisan, Mayıs, Haziran, Temmuz, Ağustos, Eylül ve Ekim doğumlu çiftler birer çift yavru verir, Kasım doğumlu çiftler henüz yavru vermez. Tavşan sayımız 144 çift olur.

Şimdi, yukarıda her ay için elde ettiğimiz çiftlerin sayılarını sırayla bir dizi biçiminde yazalım:

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144

Bu dizide şu özeliği hemen farkedebiliriz:

Dizinin her terimine bir önceki terim eklenince bir sonraki terim elde ediliyor.  

Sözle ifade ettiğimiz bu kuralı matematiksel simgelerle ifade etmek için bu dizinin terimlerini, soldan sağa doğru, F(1), F(2), ... , F(12) diye adlandıralım. Başlangıç saydığımız Ocak ayındaki tavşan çifti sayısını F(1) simgesiyle, Şubat ayındaki tavşan çifti sayısını F(2) simgesiyle gösterdik. Sırayla devam ederek, Aralık ayındaki tavşan çiftlerinin sayısını F(12) ile gösterdik. Kuralı her terime uygularsak

F(1)  =1

F(2) = 1

F(3) =  F(2) + F(1) = 1 + 1 = 2

F(4) = F(3) + F(2) = 2 + 1 = 3

F(5) = F(4) + F(3) = 3 + 2 = 5

F(6) = F(5) + F(4) = 5 + 3 =  8

F(7) = F(6) + F(5) = 8 + 5 =  13

F(8) = F(7) + F(6) = 13 + 8 =  21

F(9) = F(8) + F(7) = 21 + 13 =  34

F(10) = F(9) + F(8) = 34 + 21 =  55

F(11) = F(10) + F(9) = 55 + 34 =  89

F(12) = F(11) + F(10) = 89 + 55 =  144

eşitliklerini yazabiliriz.

Çoğalma süresini 12 ay yerine 24 ay ya da  48 ay yapsak aynı kuralı uygulayarak, oluşacak çiftlerin sayısını bulabiliriz. Süreyi kaldıralım ve oluşumun süresiz devam ettiğini varsayalım. Tabii, bu durumda, tavşanları da unutup, olayı daha soyut biçime koyabiliriz.

Öyle bir sayı dizisi kuralım ki, bu dizide her bir terime kendisinden önceki terim eklenince kendisinden sonraki terime eşit olsun.

Sözle ifade ettiğimiz bu kuralı matematiksel simgelerle ifade etmek için bu dizinin terimlerini, soldan sağa doğru  F(1), F(2), ... , F(n) , ...  diye adlandıralım. Bunu matematikte, kısaca,

            {F(n)} , (n=1,2,...)

simgesiyle gösteririz. (n=1,2,...) simgesi, n damgasının (index) sırayla bütün doğal sayıları tarayacağı anlamına gelir. Böylece sonsuz sayıda terimi olan bir dizi oluşur. Yukarıdaki kuralı simgelerle yazınca

F(0) = 0

F(1) = 1

F(n+1) = F(n) + F(n – 1)  , (n= 2, 3, ...)

eşitliği ortaya çıkar. Yukarıdaki eşitlikler, sonsuz terimli Fibonacci dizisinin bütün terimlerini üretir. Bu dizinin ilk 23 terimi aşağıdadır.

1,1,2,3,5,8,13,21,34,55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657,46368, 75025, ...

Görüldüğü gibi, Fibonacci dizisinin terimleri 12 nci terimden sonra hızla artışa geçmektedir. Dizinin büyük damgalı (index) terimlerini elle hesaplamak çok zaman alır. Ama basit bilgisayar programıyla çok büyük damgalı terimleri kolayca hesaplanabilir. Aşağıdaki C fonksiyonu bu işi yapmaktadır.

long fibonacci(unsigned long n) {

    if (n <= 1) {

        return n;

    } else {

        return fib(n-1)+fib(n-2);

    }

}

Gelecek yazı: Fibonacci Sayıları ve doğa.