➕ Fibonacci Dizisi Nedir?
Fibonacci dizisi, her sayının kendinden önceki iki sayının toplamı olduğu bir sayı dizisidir. Dizi genellikle 0 ve 1 ile başlar. Yani dizinin ilk birkaç terimi şöyledir: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...
💡 Fibonacci Dizisi ile İlgili Örnek Problemler ve Çözümleri
🧮 Problem 1: Fibonacci Dizisinin İlk N Terimini Bulma
Problem: Kullanıcıdan alınan N değeri için Fibonacci dizisinin ilk N terimini bulan bir program yazın.
Çözüm:
- 🔢 Kullanıcıdan N değerini alın.
- 🛠️ İlk iki terimi (0 ve 1) başlangıç değerleri olarak ayarlayın.
- 🔄 Bir döngü kullanarak, bir sonraki terimi hesaplayın ve diziye ekleyin.
- 📃 Diziyi ekrana yazdırın.
Örnek Kod (Python):
python
def fibonacci(n):
fib_dizisi = [0, 1]
if n <= 2:
return fib_dizisi[:n]
for i in range(2, n):
sonraki_sayi = fib_dizisi[i-1] + fib_dizisi[i-2]
fib_dizisi.append(sonraki_sayi)
return fib_dizisi
n = int(input("Fibonacci dizisinin kaç terimini istiyorsunuz? "))
print(fibonacci(n))
📐 Problem 2: Fibonacci Sayısı Tek mi Çift mi?
Problem: Verilen bir Fibonacci sayısının tek mi çift mi olduğunu bulun.
Çözüm:
- ➕ Fibonacci dizisini oluşturun (veya önceden hesaplanmış bir dizi kullanın).
- 🔍 Verilen sayının dizide olup olmadığını kontrol edin.
- 💯 Eğer sayı dizide ise, tek mi çift mi olduğunu belirleyin.
Ek Not: Bir Fibonacci sayısı, yalnızca kendinden önceki iki sayının toplamı tek ise tektir. Bu, kendinden önceki sayılardan birinin tek ve diğerinin çift olması gerektiği anlamına gelir.
🍀 Problem 3: Fibonacci Dizisinde Belirli Bir Aralıktaki Sayıları Bulma
Problem: Verilen bir aralıktaki (örneğin, 10 ile 50 arasındaki) Fibonacci sayılarını bulun.
Çözüm:
- 🎯 Fibonacci dizisini, aralığın üst sınırına kadar oluşturun.
- 📌 Dizideki sayıları aralık içinde olup olmadıklarına göre filtreleyin.
- 📃 Filtrelenmiş sayıları ekrana yazdırın.
🧮 Problem 4: Fibonacci Dizisinin N'inci Terimini Bulma (Özyinelemeli Yöntem)
Problem: Fibonacci dizisinin N'inci terimini özyinelemeli (recursive) bir fonksiyon kullanarak bulun.
Çözüm:
- ⚙️ Bir özyinelemeli fonksiyon tanımlayın.
- 🛑 Temel durumları (N=0 ve N=1) belirleyin.
- 🔄 Özyinelemeli adımı (Fib(N) = Fib(N-1) + Fib(N-2)) uygulayın.
Örnek Kod (Python):
python
def fibonacci_recursive(n):
if n <= 1:
return n
else:
return fibonacci_recursive(n-1) + fibonacci_recursive(n-2)
n = int(input("Hangi Fibonacci sayısını istiyorsunuz? "))
print(fibonacci_recursive(n))
➗ Problem 5: Bölünebilme Özellikleri
Problem: Fibonacci dizisindeki sayıların belirli bir sayıya bölünüp bölünmediğini kontrol edin. Örneğin, Fibonacci dizisinde 5'e bölünebilen ilk sayıyı bulun.
Çözüm:
- ➕ Fibonacci dizisini oluşturun.
- 🔁 Dizideki her sayıyı kontrol edin.
- 🔍 Sayının belirli bir sayıya bölünüp bölünmediğini belirleyin.
- ✅ Bölünen ilk sayıyı bulunca döngüyü sonlandırın.
📝 Problem 6: Altın Oran ile İlişkisi
Problem: Fibonacci dizisindeki ardışık iki sayının oranının altın orana yaklaştığını gösterin.
Çözüm:
- 🔢 Fibonacci dizisinin yeterince uzun bir bölümünü hesaplayın.
- ➗ Ardışık her iki sayının oranını hesaplayın.
- 📈 Oranların 1.618 (altın oran) değerine yaklaştığını gözlemleyin.
➕ Problem 7: Fibonacci Dizisi ve Matrisler
Problem: Fibonacci sayılarını matrisler kullanarak hesaplayın.
Çözüm:
Fibonacci dizisini matrisler kullanarak hesaplamak için aşağıdaki formülü kullanabiliriz:
$\begin{bmatrix} F_{n+1} \\ F_n \end{bmatrix} = \begin{bmatrix} 1 & 1 \\ 1 & 0 \end{bmatrix} \begin{bmatrix} F_n \\ F_{n-1} \end{bmatrix}$
Bu formülü kullanarak, $n$'inci Fibonacci sayısını bulmak için $\begin{bmatrix} 1 & 1 \\ 1 & 0 \end{bmatrix}$ matrisinin $n$'inci kuvvetini hesaplamak yeterlidir.
- ➕ $\begin{bmatrix} 1 & 1 \\ 1 & 0 \end{bmatrix}$ matrisini tanımlayın.
- 🔢 Matrisin N'inci kuvvetini hesaplayın.
- 📌 Elde edilen matrisin ilgili elemanları Fibonacci sayılarını verecektir.