Menara Hanoi
Menara Hanoi menurut Wikipedia adalah permainan matematis atau teka-teki, 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, mengikuti aturan berikut:
Banyak program tentang solusi menara/tower Hanoi dalam berbagai bahasa komputer ditulis di internet yang dengan mudah dapat kita unduh. Kali ini saya mencoba membuat visualisasinya dengan Excel hanya berbekal fungsi-fungsi sel tanpa menggunakan VBA macro. Maksimum jumlah piring/cakram yang bisa divisualisasikan adalah 10 piring. Setelah mengisi jumlah piring pada sel C3, maka anda dapat menggeser scroll bar di atas tiga tiang seperti pada tampilan dibawah ini dan pada sel (E2) di atasnya akan muncul langkah perpindahan yang terjadi.
Bila jumlah piring adalah n, maka jumlah maksimal langkah yang dilakukan untuk memindahkan semua piring dari tiang A ke tiang C adalah 2n−1. Jadi untuk 10 piring maka langkah maksimalnya adalah 210−1 = 1024 – 1 = 1023 langkah.
Apa Rahasianya
Untuk memahami cara kerja file Excel ini, perhatikan terlebih dahulu sheet ‘prep‘. Pada sheet tersebut terdapat tabel yang telah dipersiapkan terlebih dahulu untuk bisa menampilkan visualisasi. Jadi dibangun daftar berturut-turut langkah penyelesaian tower Hanoi untuk n=1, n=2, n=3, dan seterusnya hingga n=10. Daftar ini dibuat dengan menggunakan formula, yaitu pada kolom D, E, F dan J, K, L. Sedangkan kolom G, H, dan I merupakan pola penempatan angka 1 yang jika anda perhatikan memiliki keteraturan yang berbeda untuk jumlah piring (n) ganjil dan jumlah piring (n) genap.
Namun dari daftar di sheet ‘prep‘ ini yang digunakan untuk visualisasi hanyalah data pada jumlah piring terakhir, yaitu n = 10. Perhitungan pada sel D1024:F2047 saya salin ke sheet ‘data‘ sel D5:F1028. Kolom G,H, dan I pada sheet ‘data‘ memilih data sebanyak jumlah piring, sebagai contoh jika input jumlah piring = 7, maka diambil 7 karakter terakhir dari tiap tiang. Selanjutnya data pada kolom G, H, dan I diberi nomer urut piring pada kolom J hingga AM, kemudian digabungkan menjadi 1 untuk setiap tiang pada kolom AO, AP dan AQ.
Data pada AO, AP dan AQ inilah yang digunakan untuk menampilkan visualisasi per langkah tower Hanoi.
Warna-warna piring pada tampilan visualisasi menggunakan fasilitas ‘Conditional Formatting‘ pada menu ‘Home‘. Sedangkan penjelasan langkah per langkah mendapatkan data dari rumus-rumus di baris 20-24 pada sheet ‘tampil‘ yang warnanya dibuat sama dengan background sehingga tidak nampak agar tidak mengganggu tampilan.
Untuk mengunduh file excel hanoi.xlsx silakan klik tautan berikut:
Comments
Post a Comment