Soru Sor
Sorunu sor hemen cevaplansın.
bilgisiyar bilimi dersinde hanoi kulesinin aşama sayısını bulmak çok basit kaç tane hanoi tahtası varsa 2 üssü n eksi 1 yapıyoruz.
başarılar
Hanoi kuleleri, 1883 yılında E. Lucas tarafından icat edilmiş bir bulmacadır. Bu bulmacadaki amaç, sol tarafta üst üste duran diskleri, her seferinde bir disk hareket ettirmek kaydıyla, sağ tarafa taşımaktır. Bu sırada hiçbir disk, kendinden küçük olanın üstüne konulamaz. Amaç, mümkün olan en az hamle sayısıyla oyunu tamamlamaktır. Disk sayısı arttıkça, minimum hamle sayısı da değişmektedir.Çözüm için en basitten ilerleyelim ve yalnızca bir disk olduğunu düşünelim. Bu durumda yalnızca bir hamlede bu diski sağ tarafa alarak problemi çözebiliyoruz. Peki iki disk olduğu durumda ne oluyor? Amacım, sağ tarafa bu iki diski almak. Eğer küçük olanı sağ tarafa koyarsam, bu durumda büyük olanı ortaya koymak durumunda kalırım, bu da işleri uzatır. Oysa ki ben, en büyük olan diski sağ tarafa koymayı hedefliyorum. Bu durumda küçük diski ortaya koyar, ardından büyük olanı sağa koyar, ardından da ortaya koyduğum küçük diski, sağda bekleyen büyük diskin üstüne koyarım. Böylelikle üç hamlede problem çözülmüş olur. Bir disk için bir hamle, iki disk için üç hamle yeterli oldu.Üç disk için, yukarıdaki görselde çözüm gösteriliyor. Fakat bundan önce dikkatinizi çekmek istediğim nokta, çözdüğümüz iki soruda, yaptığımız hamlelerin nasıl olduğu? Bir diskte, ilk hamlemiz sağ sütuna oldu. İki diskte ise ilk hamlemiz orta sütuna oldu. Üç diskte ise ilk hamlemiz sağ sütuna olacak. Dikkat edin, problem aslında kendi içerisinde alt problemlere ayrılmış durumda. Güzel bir dinamik programlama örneği.İki diskte, iki diski de sağ tarafa almak istiyorum. Öyleyse önce bir disk için problemi çözmeliyim. Bir disk için problemi çözdüğümde, geriye fazladan olan ikinci disk kalacak. Bunu da hedef konum olan, sağ sütuna koyabilirim. Öyleyse bir disk için problemi, ortada çözmeliyim.Aynı mantığı üç disk için düşünelim. Üç diski sağ tarafa taşımak istiyorum. Öyleyse iki diski ortada toplamalıyım ki, fazladan olan en büyük disk sağ tarafa gelebilsin. İki diski ortada toplayabilmek için ise, bir üstteki adımın geçerli olduğunu göreceksiniz. Küçük olanı en sağa almalıyım ki, ikinci disk ortaya gelebilsin. Bu yüzden, üç diskli problemde, ilk hamle en sağa koyarak başlıyor.Üç diskli problemin çözümünde, ilk hamlenin, bir diskli problemin çözümü, üçüncü hamlenin de iki diskli problemin çözümü olduğuna dikkat edin. Üç disk problemi, yedi basamakta çözüldüğüne göre, dört disk problemini çözerken, yedinci basamakta üç disk problemini çözmüş olmalıyız.
Tarih: 2017-10-15 09:55:44 Kategori: Diğer
Soru Tarat
Kitaptan sorunu tarat hemen cevaplansın.
Sorunu sor hemen cevaplansın.
Hanoi Kulesi Nedir
başarılar
Hanoi kuleleri, 1883 yılında E. Lucas tarafından icat edilmiş bir bulmacadır. Bu bulmacadaki amaç, sol tarafta üst üste duran diskleri, her seferinde bir disk hareket ettirmek kaydıyla, sağ tarafa taşımaktır. Bu sırada hiçbir disk, kendinden küçük olanın üstüne konulamaz. Amaç, mümkün olan en az hamle sayısıyla oyunu tamamlamaktır. Disk sayısı arttıkça, minimum hamle sayısı da değişmektedir.Çözüm için en basitten ilerleyelim ve yalnızca bir disk olduğunu düşünelim. Bu durumda yalnızca bir hamlede bu diski sağ tarafa alarak problemi çözebiliyoruz. Peki iki disk olduğu durumda ne oluyor? Amacım, sağ tarafa bu iki diski almak. Eğer küçük olanı sağ tarafa koyarsam, bu durumda büyük olanı ortaya koymak durumunda kalırım, bu da işleri uzatır. Oysa ki ben, en büyük olan diski sağ tarafa koymayı hedefliyorum. Bu durumda küçük diski ortaya koyar, ardından büyük olanı sağa koyar, ardından da ortaya koyduğum küçük diski, sağda bekleyen büyük diskin üstüne koyarım. Böylelikle üç hamlede problem çözülmüş olur. Bir disk için bir hamle, iki disk için üç hamle yeterli oldu.Üç disk için, yukarıdaki görselde çözüm gösteriliyor. Fakat bundan önce dikkatinizi çekmek istediğim nokta, çözdüğümüz iki soruda, yaptığımız hamlelerin nasıl olduğu? Bir diskte, ilk hamlemiz sağ sütuna oldu. İki diskte ise ilk hamlemiz orta sütuna oldu. Üç diskte ise ilk hamlemiz sağ sütuna olacak. Dikkat edin, problem aslında kendi içerisinde alt problemlere ayrılmış durumda. Güzel bir dinamik programlama örneği.İki diskte, iki diski de sağ tarafa almak istiyorum. Öyleyse önce bir disk için problemi çözmeliyim. Bir disk için problemi çözdüğümde, geriye fazladan olan ikinci disk kalacak. Bunu da hedef konum olan, sağ sütuna koyabilirim. Öyleyse bir disk için problemi, ortada çözmeliyim.Aynı mantığı üç disk için düşünelim. Üç diski sağ tarafa taşımak istiyorum. Öyleyse iki diski ortada toplamalıyım ki, fazladan olan en büyük disk sağ tarafa gelebilsin. İki diski ortada toplayabilmek için ise, bir üstteki adımın geçerli olduğunu göreceksiniz. Küçük olanı en sağa almalıyım ki, ikinci disk ortaya gelebilsin. Bu yüzden, üç diskli problemde, ilk hamle en sağa koyarak başlıyor.Üç diskli problemin çözümünde, ilk hamlenin, bir diskli problemin çözümü, üçüncü hamlenin de iki diskli problemin çözümü olduğuna dikkat edin. Üç disk problemi, yedi basamakta çözüldüğüne göre, dört disk problemini çözerken, yedinci basamakta üç disk problemini çözmüş olmalıyız.
Tarih: 2017-10-15 09:55:44 Kategori: Diğer
Kitaptan sorunu tarat hemen cevaplansın.
Yorum Yapx