Oyna. Tahmin et. Anla.

Hanoi Kuleleri

3–5 diskle oyna, mevcut konumuna göre ipucu al ve iki kısa animasyonla özyinelemeli stratejiyi öğren. Adım adım örneği istediğin zaman aç.

Hanoi Kuleleri oyna
ABCDisk 44Disk 33Disk 22Disk 11

Küçük yığını kenara taşıyarak en büyük diski serbest bırak.

Hanoi Kuleleri kuralları

  1. Bütün yığını A çubuğundan C çubuğuna taşı.
  2. Her hamlede yalnızca bir disk, çubuğun en üstündeki diski taşı.
  3. Büyük diski asla daha küçük diskin üstüne koyma.

Hanoi Kuleleri oyna

Önce başlangıç, sonra hedef çubuğu seç. Sayılar boyutu gösterir: 1 en küçüktür. Hamleyi geri al veya başka bir yol denemek için yeniden başla.

0 hamle
ABCDisk 33Disk 22Disk 11

Başlangıç çubuğunu, ardından hedefi seç.

İpuçları mevcut konumunu kullanır ve diskleri senin yerine taşımaz. Kurala uygun bir dolambaç da çözülebilir.

Hanoi Kuleleri nasıl çözülür?

Önce en büyük diski düşün. Dört diskli örnekte üç küçük disk onu engeller. Disk 4'ü taşımadan önce bu küçük problemi çöz.

  1. Küçük yığını kenara taşı

    C'yi yardımcı olarak kullanıp disk 1, 2 ve 3'ü A'dan B'ye taşı. Disk 4 A'da kalsın. Artık C boş ve disk 4 erişilebilir.

    ABCDisk 44Disk 33Disk 22Disk 11
  2. En büyük diski taşı

    Disk 4'ü A'dan C'ye taşı. Bu hamle en büyük diski son yerine koyar.

    ABCDisk 44Disk 33Disk 22Disk 11
  3. Küçük yığını hedefe getir

    A'yı yardımcı olarak kullanıp disk 1, 2 ve 3'ü B'den C'ye taşı. Disk 4'ün üstüne sığarlar ve bulmaca çözülür.

    ABCDisk 44Disk 33Disk 22Disk 11

Her küçük yığın aynı planı kullanır: en büyüğün üstündekileri kenara taşı, büyük diski taşı, sonra küçük yığını üstüne getir. Tek disk kaldığında doğrudan taşı. Bu özyinelemedir; başlangıç, hedef ve yardımcı çubuk rolleri her alt problemde değişir.

Sonraki hedefi tahmin ederek öğren

Bu ayrı dört diskli örnekler oyununu değiştirmez. Duraklat, hamle hamle izle, tahmini yanıtla veya açıklamayı aç.

1. En büyük diske yol aç

Üç küçük diskin disk 4'e yer açmasını izle. Büyük disk hareket etmeden önce nerede olmaları gerektiğini tahmin et.

Ayrı dört diskli örnek

Hedef: C yardımcı çubuğuyla 3 diski A üzerinden B üzerine taşı.

ABCDisk 44Disk 33Disk 22Disk 11

Önce yol aç: üstteki üç diski A'dan B'ye taşı.

Adım 0 / 8

2. Küçük problemi tekrarla

Disk 4 zaten C'de. Geriye farklı çubuk rolleriyle aynı üç diskli problem kalır.

Ayrı dört diskli örnek

Hedef: A yardımcı çubuğuyla 3 diski B üzerinden C üzerine taşı.

ABCDisk 44Disk 33Disk 22Disk 11

Disk 4 C'de kalır. Şimdi üç diski B'den C'ye taşıma problemini çöz.

A yardımıyla üç diski B'den C'ye taşırken disk 1 önce nereye gitmeli?

Adım 0 / 7

Adım adım çözümler

Örnekler bütün diskler A'dayken başlar ve C'de biter. Doğrudan açabilirsin; oyunun değişmez.

En az hamle sayısı

T(n) = 2T(n − 1) + 1 = 2ⁿ − 1

Standart çözüm küçük yığını iki, en büyük diski bir kez taşır: T(n) = 2T(n − 1) + 1. Tek disk bir hamle ister; n disk için en az sayı 2ⁿ − 1'dir.

3 disk: 7 hamle. 4 disk: 15 hamle. 5 disk: 31 hamle.

3 disk — 7 hamle

Başlangıç: tüm diskler A'da. Hedef: C. Disk 1 en küçüktür.

  1. Disk 1 için A → C hamlesini yap.
  2. Disk 2 için A → B hamlesini yap.
  3. Disk 1 için C → B hamlesini yap.
  4. Disk 3 için A → C hamlesini yap.
  5. Disk 1 için B → A hamlesini yap.
  6. Disk 2 için B → C hamlesini yap.
  7. Disk 1 için A → C hamlesini yap.
4 disk — 15 hamle

Başlangıç: tüm diskler A'da. Hedef: C. Disk 1 en küçüktür.

  1. Disk 1 için A → B hamlesini yap.
  2. Disk 2 için A → C hamlesini yap.
  3. Disk 1 için B → C hamlesini yap.
  4. Disk 3 için A → B hamlesini yap.
  5. Disk 1 için C → A hamlesini yap.
  6. Disk 2 için C → B hamlesini yap.
  7. Disk 1 için A → B hamlesini yap.
  8. Disk 4 için A → C hamlesini yap.
  9. Disk 1 için B → C hamlesini yap.
  10. Disk 2 için B → A hamlesini yap.
  11. Disk 1 için C → A hamlesini yap.
  12. Disk 3 için B → C hamlesini yap.
  13. Disk 1 için A → B hamlesini yap.
  14. Disk 2 için A → C hamlesini yap.
  15. Disk 1 için B → C hamlesini yap.
5 disk — 31 hamle

Başlangıç: tüm diskler A'da. Hedef: C. Disk 1 en küçüktür.

  1. Disk 1 için A → C hamlesini yap.
  2. Disk 2 için A → B hamlesini yap.
  3. Disk 1 için C → B hamlesini yap.
  4. Disk 3 için A → C hamlesini yap.
  5. Disk 1 için B → A hamlesini yap.
  6. Disk 2 için B → C hamlesini yap.
  7. Disk 1 için A → C hamlesini yap.
  8. Disk 4 için A → B hamlesini yap.
  9. Disk 1 için C → B hamlesini yap.
  10. Disk 2 için C → A hamlesini yap.
  11. Disk 1 için B → A hamlesini yap.
  12. Disk 3 için C → B hamlesini yap.
  13. Disk 1 için A → C hamlesini yap.
  14. Disk 2 için A → B hamlesini yap.
  15. Disk 1 için C → B hamlesini yap.
  16. Disk 5 için A → C hamlesini yap.
  17. Disk 1 için B → A hamlesini yap.
  18. Disk 2 için B → C hamlesini yap.
  19. Disk 1 için A → C hamlesini yap.
  20. Disk 3 için B → A hamlesini yap.
  21. Disk 1 için C → B hamlesini yap.
  22. Disk 2 için C → A hamlesini yap.
  23. Disk 1 için B → A hamlesini yap.
  24. Disk 4 için B → C hamlesini yap.
  25. Disk 1 için A → C hamlesini yap.
  26. Disk 2 için A → B hamlesini yap.
  27. Disk 1 için C → B hamlesini yap.
  28. Disk 3 için A → C hamlesini yap.
  29. Disk 1 için B → A hamlesini yap.
  30. Disk 2 için B → C hamlesini yap.
  31. Disk 1 için A → C hamlesini yap.

Konumum örnekten farklıysa?

Boyut kuralına uyan her konum C'ye ulaşabilir. Tekrarlanan konum bir döngüdür, çıkmaz değildir. Formül standart başlangıç içindir; herhangi bir konumun kalan hamle sayısı değildir. Gerçek konumun için ipucu kullan.

Bulmacalar →