Você está na página 1de 11

PROBLEM TOWER OF HANOI

Dimas Y.P. Rohmad R. 5109100001 5109100112 M. Najib 5109100111

DESKRIPSI PROBLEM
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. Tujuan dari teka-teki ini adalah untuk memindahkan seluruh tumpukan ke tiang yang lain

(http://id.wikipedia.org/wiki/Menara_Hanoi)

ATURAN MAIN
Hanya satu cakram yang boleh dipindahkan dalam satu waktu. 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. Tidak boleh meletakkan cakram di atas cakram lain yang lebih kecil.

(http://id.wikipedia.org/wiki/Menara_Hanoi)

ALGORITMA PENYELESAIAN

Cara I
Rekursi

Cara lainnya
Iterasi Non-recursive solution Binary solutions Gray code solution Visual solution

ILUSTRASI

ANALISIS ALGORITMA REKURSIF


PROBLEM TOWER OF HANOI

ALGORITMA REKURSI TOH


Pseudocode : Rekursi (n, Tiang1, Tiang2, Tiang3) if (n = 1)

P indahkan cakram dari Tiang1 ke Tiang3

else
Rekursi (n-1, Tiang1, Tiang3, Tiang2) Pindahkan cakram dari Tiang1 ke Tiang3 Rekursi (n-1, Tiang2, Tiang1, Tiang3)

FUNCTION CODE

ANALISIS
Berikut analisis algoritma berdasarkan pemanggilan fungsi utamanya

Rekursi (n, Tiang1, Tiang2, Tiang3) if (n = 1)

P indahkan cakram dari Tiang1 ke Tiang3

else
Rekursi (n-1, Tiang1, Tiang3, Tiang2) Pindahkan cakram dari Tiang1 ke Tiang3 Rekursi (n-1, Tiang2, Tiang1, Tiang3

T(n-1) 1 T(n-1)

ANALISIS (2)
1

;n=1

T(n)

2 (T(n-1)) + 1 ; else Misalkan n = 4. T(1) = 1. maka T(2) = 2 (T(1)) + 1 = 2 x 1 + 1 = 3 T(3) = 2 (T(2)) + 1 = 2 x 3 + 1 = 7 T(4) = 2 (T(3)) + 1 = 2 x 7 + 1 = 15

Dari sini dapat ditemukan sebuah pola untuk mendapatkan T(n). . .

ANALISIS (3)
Misal S(n) = T(n) + 1, sehingga S(0) = T(0) + 1 = 1 S(n) = T(n) + 1 = (2 T(n-1) + 1) + 1 = 2 T(n-1) + 2 = 2(T(n-1) + 1) = 2 S(n-1) Sehingga didapatkan S0 = 1 S(n) = 2S(n-1) for n > 0

Você também pode gostar