Hanoi Kuleleri'nde ustalaşmak için temel prensipleri anlamak yeterlidir. Rekürsif düşünce yapısı ve pratik ipuçları ile her disk sayısı için optimal çözüm mümkündür.
Temel Strateji
Optimal strateji, "böl ve fethet" (divide and conquer) prensibine dayanır. Her zaman en küçük hedefe odaklanın: n disk için önce n-1 diski yardımcı çubuğa taşıyın, en büyük diski hedefe yerleştirin, sonra n-1 diski yardımcıdan hedefe taşıyın.
3 Disk İçin Adım Adım Çözüm
Başlangıç Durumu
Tüm diskler (1, 2, 3) Kaynak çubukta.
Üst 2 Diski Taşı
Disk 1'i Yardımcı'ya, Disk 2'yi Hedef'e taşı.
En Büyük Diski Yerleştir
Disk 3'ü Kaynak'tan Hedef'e taşı.
Küçük Diskleri Tamamla
Disk 1'i Kaynak'a, Disk 2'yi Hedef'e, Disk 1'i Hedef'e taşı.
Altın Kural
🎯 Stratejik Prensip
Her zaman hedefinizi bölecek şekilde düşünün:
- n disk problemi → (n-1) disk + 1 disk + (n-1) disk
- Her alt problem kendi içinde aynı stratejiyle çözülür
- Baz durum: 1 disk = doğrudan taşı
Rekürsif Düşünme
Rekürsiyon, Hanoi Kuleleri'nin en doğal ve zarif çözümüdür. Bu yaklaşım, problemi kendi kopyalarına dönüştürerek çözer.
Mental Model
Seviye 1: 3 Disk Problem
"2 diski Yardımcı'ya taşı, sonra 3'ü Hedef'e, sonra 2'yi Hedef'e"
Seviye 2: 2 Disk Problem
"1 diski Hedef'e taşı, sonra 2'yi Yardımcı'ya, sonra 1'i Yardımcı'ya"
Seviye 3: 1 Disk (Baz)
"Doğrudan taşı"
Pratik İpucu: Küçük Disk
💡 En Küçük Disk Stratejisi
En küçük disk (Disk 1), her zaman bir yönde dolaşır:
- Tek disk sayısı (3, 5, 7...): Saat yönünde (1→2→3→1)
- Çift disk sayısı (2, 4, 6...): Saat yönünün tersi (1→3→2→1)
Bu kural, optimal çözümün %50'sini oluşturur!
İteratif Yaklaşım
İteratif (döngüsel) çözüm, herhangi bir programlama dilinde kolayca uygulanabilir ve rekürsif çağrı yığını sorununu önler.
İteratif Algoritma
function hanoi_iterative(n):
// n tek ise küçük disk saat yönünde
// n çift ise küçük disk saat yönünün tersi
direction = (n % 2 == 1) ? clockwise : counter_clockwise
total_moves = 2n - 1
for move from 1 to total_moves:
if move is odd:
// Tek hamleler: En küçük disgi tasi
move_smallest_disk(direction)
else:
// Çift hamleler: Tek legal hamleyi yap
make_only_legal_move()
return
Küçük Disk Deseni
| Hamle | Disk 1 Hareketi (n=3) | Disk 1 Hareketi (n=4) |
|---|---|---|
| 1 | 1→2 | 1→3 |
| 3 | 1→3 | 1→2 |
| 5 | 1→2 | 1→3 |
| 7 | 1→3 | 1→2 |
İleri Seviye İpuçları
🧠 Hafıza Teknikleri
- "İki küçük, bir büyük" desenini hatırla
- Her disk için hedef çubuğu görselleştir
- Hamle numarasını sayarak ilerle
⚡ Hız Teknikleri
- Önce tüm küçük diskleri taşıma kuralını öğren
- Görsel desen tanıma pratiği yap
- Otomatik hamleler geliştir (refleks)
🎯 Optimal Kontrol
- Hamle sayını sürekli kontrol et: 2n-1
- Büyük diski sadece bir kez taşımalısın
- Her diski 2(disk_no-1) kez taşırsın
📐 Uzaysal Strateji
- Her zaman hedef çubuğu görselleştir
- Yardımcı çubuğu "geçici depo" olarak gör
- Disk sıralamasını aklında tut
Ortak Hatalardan Kaçının
Aynı Disgi Ard ArdA Taşıma
Optimal çözümde aynı disk ard arda iki kez taşınmaz (en küçük disk hariç).
Büyük Diskleri Erken Taşıma
En büyük diski hedefe yerleştirmeden önce tüm küçük diskler yardımcı çubukta olmalı.
Disk Sıralamasını Bozma
Asla büyük bir diski küçüğün üzerine koyma - bu geçersiz hamledir.
Alıştırma Modları
Becerilerinizi geliştirmek için sistematik alıştırmalar yapın:
Önerilen Eğitim Programı
Seviye 1: Başlangıç (3-4 Disk)
- 3 disk ile 7 hamlede çözüm hedefi
- Her hamleyi düşünerek yap
- Rekürsif stratejiyi içselleştir
Seviye 2: Orta (5-6 Disk)
- 5 disk için 31 hamle
- 6 disk için 63 hamle
- Küçük disk desenini kullan
Seviye 3: İleri (7-8 Disk)
- 7 disk için 127 hamle
- 8 disk için 255 hamle
- Refleks hamleler geliştir
Pratik Egzersizler
Desen Tanıma
5 hamle yap, sonra kalan hamleleri tahmin etmeye çalış.
Ters Çözüm
Hedef çubuktan başlayıp kaynak çubuğa geri dön.
Kısıtlı Çözüm
Sadece belirli çubukları kullanarak çöz (zor mod).
Hız Rekorları
Profesyonel oyuncular ve bilgisayarlar arasındaki hız rekorları:
İnsan Rekorları
| Disk | Rekor Süre | Tarih |
|---|---|---|
| 3 | ~5 saniye | - |
| 4 | ~15 saniye | - |
| 5 | ~30 saniye | - |
| 6 | ~1 dakika | - |
| 7 | ~3 dakika | 2023 |
Bilgisayar Rekorları
GPU Hızlandırılmış Çözüm:
- 20 disk: Saniyenin binde biri içinde
- 32 disk: ~1 saniye
- 64 disk: ~1 saniye (hesaplama, görselleştirme değil)
Not: 64 disk için tüm hamleleri görselleştirmek bile yıllar alır!
Kendi Rekorunu Kır!
Pratik yaparak hızını artır: