Bu problem, 1883’te Fransız matematikçi Edouard Lucas tarafından bulunup , oyuncak olarak satılmaya başlanmıştır. Problemde 8 diskt ve 3 kule bulunmaktadır. Diskler boy sırasına göre küçükten büyüğe 1. kuleye dizilerek her keresinde bir diski hareket ettirmek ve bir diski asla kendisinden küçük bir disk üzerine koymamak şartıyla kuledeki diskleri boş iki çubuğa en az kaç hamlede aktarabilirsiniz?

Kulede n sayıda disk varsa, en az 2n-1 hamle gereklidir. Böylece 3 disk 7, 4 disk 15, 5 disk ise 31… hamlede taşınabilir. 8 disk için 255 hamle gereklidir; 2⁸-1=256–1=255

Hindistan’daki Benares kentinde bir
tapınakta bulunan “Brahma Kulesi”, “Hanoi Kulesi”nin benzeridir. Brahma
Kulesi’nde 64 altın disk vardır ve rahipler, nesillerdir bu diskleri boş
iki çubuğa aktarmakla meşguldürler. (Bu 64 altın disk için) gerekli
hamle sayısı, 264–1’dir. Bu ise 2 x 1018e yakın 20 basamaklı bir
sayıdır. (Yaklaşık 1.84467441 × 1019) Rahipler, gece gündüz çalışıp her
saniyede bir disk aktarsalar bile; işi bitirmek bile milyarlarca yıl
alacaktır. Söz konusu sayı, asal değildir; fakat, n = 89 veya 107 veya
127 olarak alınırsa asal sayılar elde edilebilir. Bunlara “Mersenne
sayıları” denmektedir. Lucas, ilk Mersenne sayısı olan 2127–1’i
bulmuştu. (170,141,183,460,469,231,731,687,303,715,884,105,7 27) Ondan
sonra 12 Mersenne sayısı daha bulundu. Bunların en büyüğü, 1971’de IBM
Araştırma merkezi bilgisayarlarınca bulunan Mersenne sayısıdır:
219937–1. (2¹⁹⁹³⁷-1) Bu, 6002 basamaklı bir sayıdır. Üç diskli Hanoi
Kulesi’nde disklere A, B ve C dersek, disklerin hareket sırası, ABA
CABA, dört diskli (A,B,C,D) Hanoi Kulesi’nde disklerin hareket sırası,
ABA CABA DABA CABA (15)’tir. Soldaki küpte küpün koordinatlarını A, B ve
C diye aldığımızda, ABA CABA yolu, sağdaki 4 boyutlu küpte (4 boyutlu
hiperküp) koordinatları A, B, C ve D olarak ele alındığında ABA CABA
DABA CABA yolları, noktalı çizgilerle gösterilmiştir. Bunlara “Hamilton
yolları” denmektedir. Ünlü İrlandalı matematikçi Hamilton, 1850’de
“İcosa Oyunu” adı altında bir oniki yüzlünün (dodecahedron) bütün
köşelerini dolaşıp başlanan noktaya dönmeyi bulmuştu. Bu oyun, bütün
Avrupa’ya yayıldı. Hamilton, bu keşfinden yalnızca 25 sterlin
kazanmıştı. Oyunu satanlar ise milyonlar kazandı. Görüldüğü gibi
küplerde de bütün köşeler dolaşılarak başlangıç noktasına
dönülmektedir.

Problemin Kodlanması (JAVA)

package de.vogella.algorithms.towersofhanoi;
/*@author Lars Vogel*/
public class TowersOfHanoi {
public static void move(int n, int startPole, int endPole) {
if (n== 0){
return;
}
int intermediatePole = 6 - startPole - endPole;
move(n-1, startPole, intermediatePole);
System.out.println("Move " +n + " from " + startPole + " to " +endPole);
move(n-1, intermediatePole, endPole);
}
public static void main(String[] args) {
move(5, 1, 3);
}
}

Problemi çözmek isteyenler için : http://www.sheppardsoftware.com/braingames/tower/tower.htm