Keşfedin, Öğrenin ve Paylaşın
Evrim Ağacı'nda Aradığın Her Şeye Ulaşabilirsin!
Paylaşım Yap
500 ATP Ödüllü Soru: Son yıllarda neden bazı dizilerin ve özellikle filmlerin devamı veya o evrenin farklı bir zamanını anlatan olaylar çekiliyor? Hemen cevapla!
Tüm Reklamları Kapat

Project Euler 2: Çift Fibonacci Sayıları

2 dakika
723
Project Euler 2: Çift Fibonacci Sayıları
  • Blog Yazısı
Blog Yazısı
Tüm Reklamları Kapat
Project Euler 2: Fibonacci dizisindeki her yeni terim, önceki iki terimin toplamıdır. 1 ve 2'den başlanarak ilk 10 terim şu şekildedir: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... Dört milyonu aşmayacak şekilde çift Fibonacci terimlerinin toplamı nedir?
Project Euler 2 sorusuyla birlikte algoritma sorularının vazgeçilmezi olanFibonacci dizisiyle karşılaşıyoruz. Fibonacci dizilerini elde edebileceğiniz birçok algoritma mevcut, mutlaka bunlara göz atmanızı öneririm. Özellikle özyinelemeli (recursive) fonksiyonlar konusunun vazgeçilmez örneklerindendir. Burada oldukça basit bir metodu kullanacağım. Öncelikle Fibonacci dizisini elde edeceğimiz algoritmayı belirleyelim, ardından 4000000'a kadar olan bu sayılardan hangileri çift onlara bakacağız ve çift olanların toplamının kaç ettiğini bulacağız.
Yapmamız gereken Fibonacci dizisinin temel kuralını uygulayarak sırayla sayı dizisinin elemanlarını elde etmek ve kaba bir yaklaşımla bu sayıların çift olup olmadığını denetlemek, eğer çiftse toplama eklemek olacak. Bunun için üç tane değişken tanımlıyoruz f1, f2 ve f3. Bunlar dizinin ilk üç elemanı olsun. Bu durumda f3 = f1 + f2 olacağı açıktır. Çünkü Fibonacci dizisinde sıradaki terim, önceki iki terimin toplamıdır. Buraya kadar tamam, peki bundan sonrasını nasıl elde edeceğiz?
Sıradaki terim f2+f3 olacak. Fakat bunu elimizdeki üç değişkeni kullanarak yapmalıyız, çünkü her seferinde yeni bir değişken tanımlayamayız. Zaten tanımlayabilseydik bile bu çok verimsiz bir yöntem olurdu. Bunun yerine değişkenleri öteleyeceğiz. Yeni sıralamamızdaki ilk terim şu an elimizde olan f2 olacak, dolayısıyla onu f1 yapıyoruz. Şu an elimizde bulunan f3'ü ise f2 yapıyoruz. Böylelikle sayılarımızı birer ötelemiş olduk. Şimdi yapacağımız sıradaki sayıyı belirleme işlemi yine f1+f2 olacak, fakat bu değişkenler önceki değişkenler olduğundan aslında eskiye göre yaptığımız işlem f2+f3 oldu ki biz de tam olarak bunu istiyorduk.

C# Çözümü

Böylelikle sonuç: 4613732 olarak bulunur.

Python Çözümü

Execution time 7.152557373046875e-06 seconds
Sum: 4613732

Matematiksel Yaklaşım

Soruda f1 = 1 ve f2 = 2 olarak başlamamız isteniyor. (1) no'lu diziye baktığımızda çift sayılarla ilgili bir düzen fark ediyoruz. Her üç sayıda bir çift sayıyla karşılaşıyoruz. Bu durum başlangıç koşullarını göz önüne aldığımızda gayet mantıklı görünüyor. (2) no'lu ifadeyi çiftlik teklik cinsinden tekrar yazalım.
Burada çift olma durumunu belirleyen faktör T'nin başına gelen katsayıdır. Çünkü C ne ile çarpılırsa çarpılsın sonuç C olacaktır. Ancak C+C = C olacağından, çiftlik durumunu T'nin başındaki katsayı belirler. Bu katsayı her üç tekrarda bir çift olmaktadır.
Böylelikle her sayının tek tek çift olup olmadığını kontrol etmek yerine, her üç seferde bir tekrarlayan elemanlara bakmak yeterli olacaktır.
Lakin Fibonacci sayı dizimiz oldukça kısa olduğundan, bu işlemin süre açısından çok da faydalı olmayacağını fakat başka sorularda işimize yarayabilecek bir bakış açısı olduğuna dikkat edelim.
Ögetay Kayalı
Okundu Olarak İşaretle
0
0
  • Paylaş
  • Alıntıla
  • Alıntıları Göster
Paylaş
Sonra Oku
Notlarım
Yazdır / PDF Olarak Kaydet
Raporla
Mantık Hatası Bildir
Yukarı Zıpla
Bu Blog Yazısı Sana Ne Hissettirdi?
  • Muhteşem! 0
  • Tebrikler! 0
  • Bilim Budur! 0
  • Mmm... Çok sapyoseksüel! 0
  • Güldürdü 0
  • İnanılmaz 0
  • Umut Verici! 0
  • Merak Uyandırıcı! 0
  • Üzücü! 0
  • Grrr... *@$# 0
  • İğrenç! 0
  • Korkutucu! 0
Tüm Reklamları Kapat

Evrim Ağacı'na her ay sadece 1 kahve ısmarlayarak destek olmak ister misiniz?

Şu iki siteden birini kullanarak şimdi destek olabilirsiniz:

kreosus.com/evrimagaci | patreon.com/evrimagaci

Çıktı Bilgisi: Bu sayfa, Evrim Ağacı yazdırma aracı kullanılarak 01/04/2026 16:27:58 tarihinde oluşturulmuştur. Evrim Ağacı'ndaki içeriklerin tamamı, birden fazla editör tarafından, durmaksızın elden geçirilmekte, güncellenmekte ve geliştirilmektedir. Dolayısıyla bu çıktının alındığı tarihten sonra yapılan güncellemeleri görmek ve bu içeriğin en güncel halini okumak için lütfen şu adrese gidiniz: https://evrimagaci.org/s/12646

İçerik Kullanım İzinleri: Evrim Ağacı'ndaki yazılı içerikler orijinallerine hiçbir şekilde dokunulmadığı müddetçe izin alınmaksızın paylaşılabilir, kopyalanabilir, yapıştırılabilir, çoğaltılabilir, basılabilir, dağıtılabilir, yayılabilir, alıntılanabilir. Ancak bu içeriklerin hiçbiri izin alınmaksızın değiştirilemez ve değiştirilmiş halleri Evrim Ağacı'na aitmiş gibi sunulamaz. Benzer şekilde, içeriklerin hiçbiri, söz konusu içeriğin açıkça belirtilmiş yazarlarından ve Evrim Ağacı'ndan başkasına aitmiş gibi sunulamaz. Bu sayfa izin alınmaksızın düzenlenemez, Evrim Ağacı logosu, yazar/editör bilgileri ve içeriğin diğer kısımları izin alınmaksızın değiştirilemez veya kaldırılamaz.

Aklımdan Geçen
Komünite Seç
Aklımdan Geçen
Fark Ettim ki...
Bugün Öğrendim ki...
İşe Yarar İpucu
Bilim Haberleri
Hikaye Fikri
Video Konu Önerisi
Başlık
Bugün Türkiye'de bilime ve bilim okuryazarlığına neler katacaksın?
Gündem
Bağlantı
Ekle
Soru Sor
Stiller
Kurallar
Komünite Kuralları
Bu komünite, aklınızdan geçen düşünceleri Evrim Ağacı ailesiyle paylaşabilmeniz içindir. Yapacağınız paylaşımlar Evrim Ağacı'nın kurallarına tabidir. Ayrıca bu komünitenin ek kurallarına da uymanız gerekmektedir.
1
Bilim kimliğinizi önceleyin.
Evrim Ağacı bir bilim platformudur. Dolayısıyla aklınızdan geçen her şeyden ziyade, bilim veya yaşamla ilgili olabilecek düşüncelerinizle ilgileniyoruz.
2
Propaganda ve baskı amaçlı kullanmayın.
Herkesin aklından her şey geçebilir; fakat bu platformun amacı, insanların belli ideolojiler için propaganda yapmaları veya başkaları üzerinde baskı kurma amacıyla geliştirilmemiştir. Paylaştığınız fikirlerin değer kattığından emin olun.
3
Gerilim yaratmayın.
Gerilim, tersleme, tahrik, taciz, alay, dedikodu, trollük, vurdumduymazlık, duyarsızlık, ırkçılık, bağnazlık, nefret söylemi, azınlıklara saldırı, fanatizm, holiganlık, sloganlar yasaktır.
4
Değer katın; hassas konulardan ve öznel yoruma açık alanlardan uzak durun.
Bu komünitenin amacı okurlara hayatla ilgili keyifli farkındalıklar yaşatabilmektir. Din, politika, spor, aktüel konular gibi anlık tepkilere neden olabilecek konulardaki tespitlerden kaçının. Ayrıca aklınızdan geçenlerin Türkiye’deki bilim komünitesine değer katması beklenmektedir.
5
Cevap hakkı doğurmayın.
Aklınızdan geçenlerin bu platformda bulunmuyor olabilecek kişilere cevap hakkı doğurmadığından emin olun.
Size Özel
Makaleler
Daha Fazla İçerik Göster
Popüler Yazılar
30 gün
90 gün
1 yıl
Evrim Ağacı'na Destek Ol

Evrim Ağacı'nın %100 okur destekli bir bilim platformu olduğunu biliyor muydunuz? Evrim Ağacı'nın maddi destekçileri arasına katılarak Türkiye'de bilimin yayılmasına güç katın.

Evrim Ağacı'nı Takip Et!
Geçmiş ve Notlar
Yazı Geçmişi
Okuma Geçmişi
Notlarım
İlerleme Durumunu Güncelle
Okudum
Sonra Oku
Not Ekle
İşaretle
Göz Attım
Site Ayarları

Evrim Ağacı tarafından otomatik olarak takip edilen işlemleri istediğin zaman durdurabilirsin.

[Site ayalarına git...]
Bu Yazıdaki Hareketleri
Daha Fazla göster
Tüm Okuma Geçmişin
Daha Fazla göster
0/10000
Kaydet
Keşfet
Ara
Yakında
Sohbet
Agora

Bize Ulaşın

ve seni takip ediyor
Türkiye'deki bilimseverlerin buluşma noktasına hoşgeldiniz!

Göster

Şifremi unuttum Üyelik Aktivasyonu

Göster

Şifrenizi mi unuttunuz? Lütfen e-posta adresinizi giriniz. E-posta adresinize şifrenizi sıfırlamak için bir bağlantı gönderilecektir.

Geri dön

Eğer aktivasyon kodunu almadıysanız lütfen e-posta adresinizi giriniz. Üyeliğinizi aktive etmek için e-posta adresinize bir bağlantı gönderilecektir.

Geri dön

Close
"Mantık bizi sadece çağdaşlarımızla değil, bizden binlerce yıl önce yaşamış ve çok sonra yaşayacak olanlarla birbirimize bağlar."
Leo Tolstoy
Kapak Görseli Seç
Videodan otomatik olarak çıkartılan karelerden birini seçin.
Kareler yükleniyor…
Videoyu kaydırarak istediğiniz kareyi seçin.
0:00 / 0:00
Kendi kapak görselinizi yükleyin. Görsel otomatik olarak kırpılacaktır.
Görseli sürükleyin veya tıklayın PNG, JPG veya WEBP (Maks. 10MB)