Rumah Keuangan Pribadi Pemrograman java Challenge: Mengagumi Menara Hanoi - dummies

Pemrograman java Challenge: Mengagumi Menara Hanoi - dummies

Video: Leap Motion SDK 2024

Video: Leap Motion SDK 2024
Anonim

Tantangan ini membantu Anda menggunakan bakat pemrograman Anda untuk menulis program Java yang akan mencetak langkah-langkah yang diperlukan untuk memecahkan teka-teki Menara Hanoi mengingat jumlah disk.

Menara Hanoi adalah teka-teki logika klasik yang terdiri dari tiga pasak vertikal dan sejumlah cakram dengan berbagai diameter. Setiap cakram memiliki lubang di tengahnya, sehingga cakramnya tergelincir di pasak.

Teka-teki dimulai dengan semua disk yang ditumpuk di salah satu pasak, dengan disk terbesar di bagian bawah dan yang terkecil di atas. Objek teka-teki ini adalah untuk memindahkan tumpukan disk ke salah satu pegas lainnya, dengan mematuhi dua aturan sederhana: (1) Anda hanya dapat memindahkan satu disk pada satu waktu, dan (2) Anda tidak dapat menempatkan disk yang lebih besar pada atas yang lebih kecil.

Gambar berikut menunjukkan solusi untuk setumpuk tiga disk. Seperti yang Anda lihat, solusinya memerlukan tujuh gerakan:

  1. Pindahkan Disk 1 dari Peg 1 ke Peg 3.

  2. Pindahkan Disk 2 dari Peg 1 ke Peg 2.

  3. Pindahkan Disk 1 dari Peg 3 ke Peg 2.

  4. Pindahkan Disk 3 dari Peg 1 ke Peg 3.

  5. Pindahkan Disk 1 dari Peg 2 ke Peg 1.

  6. Pindahkan Disk 2 dari Peg 2 ke Peg 3.

  7. Pindahkan Disk 1 dari Peg 1 ke Peg 3.

Setelah tujuh langkah ini, tumpukan disk akan berada di Peg 3.

Solusi untuk teka-teki Menara Hanoi dengan tiga disk.

Teka-teki akan menarik saat Anda mulai menambahkan disk ke posisi awal. Dengan tiga disk, teka-teki ini hanya membutuhkan 7 langkah untuk dipecahkan. Dengan empat disk, dibutuhkan 15 gerakan. Dengan lima disk, Anda memerlukan 31 gerakan. Enam disk membutuhkan 64 gerakan.

Jika Anda telah mengikuti matematika, jumlah gerakan yang dibutuhkan untuk menyelesaikan teka-teki meningkat secara eksponensial seiring bertambahnya jumlah disk. Secara khusus, jumlah gerakan yang diperlukan untuk memindahkan disk n adalah 2 n - 1. Misalnya, tumpukan 20 disk akan memerlukan 2 20 - 1 bergerak; Itu lebih dari satu juta bergerak!

Legenda yang menarik dikaitkan dengan teka-teki: Di ​​sebuah kuil di Hanoi, para biksu telah mengerjakan teka-teki Towers of Hanoi dengan 64 disk sejak penciptaan bumi. Ketika mereka selesai, dunia akan berakhir. Untungnya, kita memiliki waktu yang lama untuk menunggu: Jika para bhikkhu dapat memindahkan satu disk per detik, maka akan ada 580 miliar tahun lagi sebelum mereka menyelesaikan teka-teki itu.

Tantangan Anda sederhana: Tuliskan program Java yang akan mencetak langkah-langkah yang diperlukan untuk memecahkan teka-teki Menara Hanoi yang diberi jumlah disk. Program pertama harus meminta pengguna untuk jumlah disk. Maka harus menampilkan langkah-langkahnya, satu per baris.Setiap langkah harus menunjukkan pegangan untuk memindahkan disk dari, dan yang pas untuk memindahkan disk ke. Langkah-langkahnya juga harus berurutan bernomor.

Setelah selesai, program harus diulang, meminta pengguna untuk jumlah disk lagi. Program harus berakhir saat pengguna memasuki 0.

Berikut adalah contoh keluaran konsol yang harus dihasilkan program Anda:

Berapa banyak disk? (0 sampai akhir) 3 1: 1 sampai 3 2: 1 sampai 2 3: 3 sampai 2 4: 1 sampai 3 5: 2 sampai 1 6: 2 sampai 3 7: 1 sampai 3 Berapa banyak disk ? (0 sampai akhir) 0

Satu-satunya persyaratan lain untuk memecahkan tantangan ini adalah bahwa solusi Anda harus menggunakan pemrograman rekursif. Dengan kata lain, solusi Anda harus menyertakan metode yang memanggil dirinya sendiri untuk memecahkan teka-teki itu.

Program rekursif bisa jadi tantangan, jadi berikut ini beberapa petunjuk untuk pemecahan teka-teki ini:

  • Teka-teki terdiri dari tiga pasak. Salah satunya berisi tumpukan awal disk; panggil pasak pasak ini . Salah satu dari dua pasak yang tersisa adalah pasak yang ingin Anda pindahkan setumpuk disk; Panggil ini pasangkan patok target . Pasokan ketiga tersedia untuk Anda gunakan sebagai pegangan perantara untuk menyimpan disk sementara karena Anda memindahkannya. Panggil pas ini pasak pasak .

  • Metode rekursif Anda harus menerima tiga parameter: jumlah disk bergerak, pasak sumber, dan pasak target. Gunakan nilai integer 1, 2, dan 3 untuk mewakili pasak. Ide dasar pemecahan teka-teki secara rekursif adalah ini: Untuk memindahkan setumpuk disk dari sumber pasak ke pasak target memerlukan tiga langkah:

  • Pindahkan semua disk di tumpukan kecuali disket bawah ke pasak pasak

    1. Pindahkan disk terbesar ke tumpukan semula ke pasak target.

    2. Pindahkan tumpukan yang Anda pindahkan pada Langkah 1 dari pasak pasak ke pasak target. Tentu saja, aturan teka-teki memungkinkan Anda memindahkan hanya satu disk pada satu waktu, jadi Anda tidak dapat menyelesaikan Langkah 1 dan 3 dari prosedur yang diberikan di sini hanya dengan mengambil tumpukan dan memindahkannya. Di situlah rekursi masuk. Untuk Langkah 1 dan 3, Anda memanggil metode ini secara rekursif, setiap kali menentukan satu disk yang lebih sedikit untuk dipindahkan, dan setiap kali menggunakan pasak target sebelumnya sebagai pasak cadangan.

    3. Bingung mengapa metode rekursif tidak perlu menerima pasak pasak sebagai argumen? Karena Anda bisa dengan mudah menghitungnya, mengingat sumber dan target pasak. Karena hanya ada tiga pasak, diberi nomor 1, 2, dan 3, jumlah tiga pasak adalah 6 (1 + 2 + 3). Dengan adanya sumber dan pasak target, Anda bisa menghitung pasak pasak dengan mengurangkan sumber dan pasak target dari 6. Misalnya, jika sumber pasak 1 dan pasak target adalah 3, pasak pasak harus 2 karena

  • 6 - 3 - 1 = 2.

  • Untuk solusinya, pergi ke tab Download halaman produk

    Java All-in-One For Dummies,

4th Edition. semoga berhasil!

Pemrograman java Challenge: Mengagumi Menara Hanoi - dummies

Pilihan Editor

Bagaimana Menutup presentasi PowerPoint 2007 Presentation - dummies

Bagaimana Menutup presentasi PowerPoint 2007 Presentation - dummies

Menutup presentasi PowerPoint seperti memasukkannya ke dalam folder, dan menyimpan folder di laci yang tepat. Ada tiga cara yang berbeda untuk menutup presentasi PowerPoint:

Bagaimana Bandingkan Fitur PowerPoint 2013 Presentation - dummies

Bagaimana Bandingkan Fitur PowerPoint 2013 Presentation - dummies

Bandingkan fitur di PowerPoint 2013 memungkinkan Anda membandingkan perbedaan antara dua versi dari sebuah presentasi dan menerima atau menolak perbedaan. Fitur ini berguna jika Anda telah mengirimkan salinan presentasi ke reviewer dan Anda ingin secara selektif menggabungkan perubahan resensi. Menggunakan fitur Compare sangatlah mudah. Berikut adalah ...

Bagaimana Mengompres Gambar Anda di PowerPoint 2013 - dummies

Bagaimana Mengompres Gambar Anda di PowerPoint 2013 - dummies

PowerPoint 2013 mencakup perintah Compress Pictures yang dapat menghilangkan detail asing di gambar Anda dan dengan demikian mengurangi ukuran file presentasi Anda. Untuk menghemat lebih banyak ruang, perintah Compress Pictures juga akan menghapus bagian gambar Anda yang telah dipotong. Anda bisa menggunakan perintah ini untuk memampatkan hanya satu ...

Pilihan Editor

Cara Menggunakan NaturallySpeaking dengan Kotak Dialog Umum - dummies

Cara Menggunakan NaturallySpeaking dengan Kotak Dialog Umum - dummies

Secara alamiSpeaking dapat membantu Anda mengendalikan kotak dialog. Ini adalah & ldquo; Lihat Ma, tidak ada tangan & rdquo; contoh. Semuanya dilakukan dengan perintah suara. Tentu, terkadang Anda bisa menyelesaikan tugas lebih cepat dengan mematuk kunci atau menggerakkan mouse Anda. Seiring waktu, Anda akan menyelesaikan kompromi Anda sendiri antara perintah suara dan perintah mouse dan keyboard. Untuk pencarian berikut, NaturallySpeaking ...

Bagaimana Menggunakan "Klik" Command di NaturallySpeaking - dummies

Bagaimana Menggunakan "Klik" Command di NaturallySpeaking - dummies

Para insinyur di Nuance dapat ' t mengantisipasi setiap perintah yang mungkin digunakan oleh aplikasi nyasar, jadi mereka telah melakukan hal terbaik berikutnya: Mereka membuat perintah "Klik" untuk mengubah menu aplikasi menjadi perintah suara. Begini cara menggunakannya: Katakan, "Klik " untuk memperluas menu. Setiap judul yang muncul pada aplikasi ...

Bagaimana Menggunakan Mikrofon Profesional Naga Secara Pribadi:" Apakah Hal Ini Aktif? " - dummies

Bagaimana Menggunakan Mikrofon Profesional Naga Secara Pribadi:" Apakah Hal Ini Aktif? " - dummies

Dapat menjadi lucu saat Anda menyadari bahwa mikrofon Profesional Dragon Professional Anda telah berada di sepanjang waktu Anda menerima telepon terakhir Anda. Kata-kata yang Anda didiktekan tidak akan terlihat seperti apa yang Anda katakan. Ada jeda; Anda membuang muka dan mungkin mikrofon ditekan di bawah dagu Anda. Segera hapus ...

Pilihan Editor

10 Hal yang sering terjadi pada PowerPoint 2016 - dummies

10 Hal yang sering terjadi pada PowerPoint 2016 - dummies

Jumlah sebenarnya dari hal-hal yang dapat terjadi Salah saat bekerja dengan PowerPoint 2016 mungkin mendekati 10.000, tapi sepuluh di antaranya adalah yang paling sering salah. Anda tidak dapat menemukan file Anda Entah Anda menyimpan file dalam folder yang berbeda, atau Anda menggunakan nama file yang berbeda untuk menyimpannya ...

Menerapkan Style to a Table pada PowerPoint 2007 - dummies

Menerapkan Style to a Table pada PowerPoint 2007 - dummies

Setelah Anda membuat sebuah tabel di slide PowerPoint, gunakan kontrol di bawah Table Tools pada PowerPoint Ribbon untuk memformatnya. PowerPoint menawarkan beberapa gaya tabel yang telah ditentukan. Sebelum Anda menerapkan sebuah gaya, gunakan kotak centang yang muncul di sisi kiri tab Desain di bawah Table Tools on the Ribbon. Header ...

5 Trik bagus untuk PowerPoint 2016 - dummies

5 Trik bagus untuk PowerPoint 2016 - dummies

Ada banyak hal yang menyukai PowerPoint 2016, terutama jika Anda tahu caranya untuk menggunakan semua lonceng dan peluit. Berikut adalah beberapa tip dan trik yang perlu diingat: Skala ukuran slide ke dimensi monitor Ada dua rasio aspek dasar untuk layar komputer: standar (4: 3) dan lebar (16: 9). Angka-angka ini ...