Gönderen Konu: Hanoi Kuleleri{Çözüldü}  (Okunma sayısı 5016 defa)

Çevrimdışı senior

  • G.O Efsane Üye
  • *******
  • İleti: 372
  • Karma: +10/-0
Hanoi Kuleleri{Çözüldü}
« : Ağustos 09, 2011, 04:26:08 öö »
Bir plaka üzerine üstüste dizilmiş(büyük en altta) N tane farklı büyüklükteki dairesel levha var. Bunun yanında iki tane boş plaka daha var. Bu boş plakaları kullanarak,
    -  Her hamlemizde sadece bir levhanın yerini değiştirerek (Mesela 1.plakadan 2.plakaya)
    -  Hiçbir zaman büyük levha küçük levhanın üstüne gelmeyecek şekilde
bütün levhaları son plakaya taşımaya çalışıyoruz. Minimum kaç hamle yapmamız gerekir?

Ör: Eğer A ve B diye iki levhamız olsa idi (B > A olsun).

İlk durum:             Hamle 1:           Hamle 2:           Hamle 3:
     A                                                                                       A
     B                      B     A                      A      B                        B
    __   __   __      __   __   __       __   __   __        __   __   __

gibi 3 hamle yapacaktık.
« Son Düzenleme: Ağustos 09, 2011, 09:32:33 ös Gönderen: senior »

Çevrimdışı yasarfaith

  • G.O Sevecen Üye
  • ****
  • İleti: 70
  • Karma: +2/-0
Ynt: Hanoi Kuleleri
« Yanıtla #1 : Ağustos 09, 2011, 06:18:17 ös »
ispat konusunda net bir bilgim yok ama minimum hamle sayısı 2n-1 dir.

Çevrimdışı Lokman Gökçe

  • Lokman Gökçe
  • Administrator
  • Geo-Maniac
  • *********
  • İleti: 3.794
  • Karma: +26/-0
  • İstanbul
Ynt: Hanoi Kuleleri
« Yanıtla #2 : Ağustos 09, 2011, 07:23:16 ös »
2n - 1 doğru cevaptır. Bunu tümevrımla kolayca kanıtlayabiliriz.

n = 1 için herşey açıktır. ispatlanacak bir şey yoktur.
n = 2 için Güneş kardeşim doğruluğunu göstermiş.
n = k için 2k - 1 olduğunu Yaşar Fatih hocam tahmin etmiş. Bunun doğruluğunu kabul edelim.

Şimdi n = k + 1 için ispata geçelim. 1. kuleye dizilmiş olan k + 1 tane halkadan (ya da levhadan) en üstten aşağı doğru k tane halkayı 2. kuleye taşıyalım. Kabulümüzden dolayı 2k - 1 hamlede bu işlemi yapabiliriz. Şimdi 1. kulede kalan en geniş halkayı 3. kuleye taşıyalım. (+1 hamle). Son işlemimizde de 2. kuledeki k tane halkayı 3. kuleye taşıyalım. bunu da 2k - 1 hamlede yaparız ve problem tamamlanır.

 Toplam = (2k - 1) + 1 + (2k - 1) = 2k+1 - 1

olur. Tümevarım gereğince iddiamız her n pozitif tamsayısı için doğrudur.

NOT: başka çözüm yolları da vardır. mesela uygun bir indirgemeli dizi kurularak da aynı sonuca ulaşılabilir.
Uğraşınca çözebileceğim zorlukta olan soruları çözmeyi severim.

Çevrimdışı senior

  • G.O Efsane Üye
  • *******
  • İleti: 372
  • Karma: +10/-0
Ynt: Hanoi Kuleleri
« Yanıtla #3 : Ağustos 09, 2011, 09:27:00 ös »
Tebrikler :) Ben de diğer çözümü paylaşayım.
N tane levha için gereken hamle sayısı H(N) olsun. Lokman Hocamızın anlattığı gibi strateji
 1) N-1 levhayı 2.plakaya taşı                       --> H(N-1) hamle
 2) 1.plakada kalan levhayı 3.plakaya taşı    --> 1 hamle
 3) 2.plakadaki N-1 levhayı 3.plakaya taşı    --> H(N-1) hamle

Yani elimizdeki bağıntı H(N) = 2H(N-1) + 1 = 2( 2H(N-2) + 1) + 1 = 4H(N-2) + (1 + 2) = 4( 2H(N-3) + 1 ) + (1+2) = 8H(N-3) + (1+2+4)
= ... = 2kH(N-k) + (1+2+...+2k-1); H(1) = 1 olduğunu biliyoruz. O zaman N = k+1 diyelim ve yerine koyalım.
H(N) = 2N-1H(1) + (1+2+...+2N-2) = 2N-1 + (2N-1-1) = 2N-1

Çevrimdışı Lokman Gökçe

  • Lokman Gökçe
  • Administrator
  • Geo-Maniac
  • *********
  • İleti: 3.794
  • Karma: +26/-0
  • İstanbul
Ynt: Hanoi Kuleleri{Çözüldü}
« Yanıtla #4 : Ağustos 09, 2011, 11:26:00 ös »
Güneş kardeşim, yüksek müsaadenle zarif çözümüne küçücük bir ekleme yapayım :)

H(n) = 2H(n-1) + 1 bağıntısı doğrusal olup homojen indirgemeli dizi haline getirilip karakteristik denklem çözülerek de aynı netice elde ediliyor.
Uğraşınca çözebileceğim zorlukta olan soruları çözmeyi severim.

 


Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 
SimplePortal 2.3.3 © 2008-2010, SimplePortal