Minggu, 18 Maret 2012

Tower of Hanoi

Nama : Reny Sasmito

NMP : 1135010042


SEJARAH TOWER OF HANOI ??

Permasalahan  Tower  of  Hanoi  muncul  pada  abad  19  di Eropa  yang  menceritakan  tentang  sebuah  tugas  di  kuil Brahma.  Beberapa  pendeta  diberikan  kepingan-kepingan dan  3  buah  tiang  emasPada  tiang  pertama  kita menumpukan  64  keping  emasdan  setiap  kepingan diatasnya  selalu  lebih  kecil  dari  keping  yang  berada dibawah. Pendeta tersebut ditugaskan untuk memindahkan semua kepingan emas dari kepingan pertama ke kepingan ketigadengan  syarat  hanya  satu  keping  yang  dapat dipindahkan dalam  satu  waktu  dan  setiap  keping  tidak boleh  ditempatkan  diatas  keping  yang  ukurannya  lebih kecilPendeta  tersebut  diberi  tahu  bahwa  ketika  mereka  akan selesai memindahkan 64 keping saat dunia kiamat.

 

PENGERTIAN TOWER OF HANOI ??


Menara Hanoi adalah sebuah permainan matematis atau teka-teki. Permainan ini terdiri dari tiga tiang dan sejumlah cakram dengan ukuran berbeda-beda yang bisa dimasukkan ke tiang mana saja. Permainan dimulai dengan cakram-cakram yang tertumpuk rapi berurutan berdasarkan ukurannya dalam salah satu tiang, cakram terkecil diletakkan teratas, sehingga membentuk kerucut.


TOWER OF HANOI :

Tujuan dari teka-teki ini adalah untuk memindahkan seluruh tumpukan ke tiang yang lain, mengikuti aturan berikut :

1.Hanya satu cakram yang boleh dipindahkan dalam satu waktu.  

2.Setiap perpindahan berupa pengambilan cakram teratas dari satu tiang dan memasukkannya ke tiang lain, di atas cakram lain yang mungkin sudah ada di tiang tersebut

3.Tidak boleh meletakkan cakram di atas cakram lain yang lebih kecil.

CONTOH TOWER OF HANOI :



 ALGORITMA TOWER OF HANOI 
Jika n==1, pindahkan pringan dari A ke C 
Jika tidak: 
 1.Pindahkan n-1 piringan dari A ke B menggunakan C sebagai tampungan 
 2.Pindahkan n-1 piringan dari B ke C menggunakan A sebagai tampungan 
     Ket : n= piringan.
Pseudocode TOWER OF HANOI :
main(){

  char fromPeg = 'A';

  char withPeg = 'B';

  char toPeg = 'C‘;

  solveHanoi(disks, fromPeg, toPeg, withPeg);

  //disks= user input;

}

solveHanoi(int disks, fromPeg, toPeg, withPeg){

  if (disks >= 1)

  { solveHanoi(disks-1, fromPeg, withPeg, toPeg);

  moveDisk(fromPeg, toPeg);

  solveHanoi(disks-1, withPeg, toPeg, fromPeg);

  }

}

moveDisk(fromPeg,toPeg){

  System.out.println("move" + fromPeg + "to" + toPeg);

}


DAFTAR PUSTAKA :
http://en.wikipedia.org/wiki/Tower_of_Hanoi