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

Memahami G-Spot - dummies

Memahami G-Spot - dummies

G-spot dilaporkan merupakan tempat di vagina yang tampaknya bisa memberi wanita orgasme tanpa stimulasi klitoris. Bagaimana menemukan G-spot (dan apa yang akan dilakukannya untuk kehidupan seks mereka) telah menjadi tujuan bagi banyak wanita dan pasangan seks mereka. G-spot ini dinamai ginekolog Ernest Grafenberg yang mengaku telah menemukan ...

Gunakan Foreplay untuk Mengatur Mood sepanjang hari - garpu

Gunakan Foreplay untuk Mengatur Mood sepanjang hari - garpu

Foreplay mungkin salah satu yang paling disalahpahami kata-kata dalam kosakata seksual. Bahkan, ketika beberapa pria mendengar kata foreplay, mereka masih menganggap golf bukan seks. Tapi perlahan dan pasti, populasi laki-laki belajar bahwa foreplay sama pentingnya dengan seks yang baik seperti menggunakan besi 9 adalah golf yang bagus. ...

Ragam Varietas untuk Memperbaiki Kehidupan Seks Anda - variasi dummies

Ragam Varietas untuk Memperbaiki Kehidupan Seks Anda - variasi dummies

Membuat hidup lebih menarik. Jika Anda selalu pergi ke restoran yang sama, pengulangan itu bisa jadi membosankan, dan kebosanan tidak membantu pembakaran api romantis itu tetap menyala. Dengan mencoba tempat baru, Anda bisa mencicipi makanan baru dan suasana baru. Pengalaman akan memberi Anda hal-hal baru untuk dibicarakan, bahkan jika ...

Pilihan Editor

Cara menulis cek di QuickBooks 2010 - dummies

Cara menulis cek di QuickBooks 2010 - dummies

QuickBooks 2010 mencakup perintah dan jendela khusus untuk tujuan merekam dan mungkin mencetak cek. Anda dapat menulis cek di dalam QuickBooks, merekam informasi penarikan di akun yang sesuai.

Job Reporting Biaya di QuickBooks 2012 - dummies

Job Reporting Biaya di QuickBooks 2012 - dummies

Jika Anda memilih Reports- Jobs, Time & Mileage command, QuickBooks 2012 menampilkan submenu hampir dua lusin laporan berbeda yang memasok informasi biaya kerja. Judul laporannya cukup jelas. Beberapa laporan memberikan profitabilitas kerja, seperti laporan Ringkasan Profitabilitas Ayub. Beberapa laporan mengidentifikasi perkiraan yang terkait dengan pekerjaan tertentu. Laporan lain ...

Job Cost Reporting in QuickBooks 2015 - dummies

Job Cost Reporting in QuickBooks 2015 - dummies

Akuntansi mungkin bekerja sedikit berbeda ketika perusahaan mengatur pekerjaannya ke dalam proyek atau pekerjaan. Dalam beberapa situasi, perusahaan perlu melacak pendapatan dan pengeluaran - tidak hanya melalui bagan akun standar, tetapi juga oleh pekerjaan atau proyek. Untungnya, QuickBooks membuat penetapan biaya kerja, atau biaya proyek, sangat mudah. Jika Anda ...

Pilihan Editor

Kantor 2011 untuk Mac: Berbagi Presentasi PowerPoint Anda - dummies

Kantor 2011 untuk Mac: Berbagi Presentasi PowerPoint Anda - dummies

Anda dapat membagikan presentasi yang Anda bangun PowerPoint 2011 untuk Mac dengan berbagai cara. Masing-masing yang terbaik untuk keadaan dan skenario tertentu. Kenali anggota audiens Anda dan kombinasikan pengetahuan itu dengan kebutuhan Anda untuk memilih metode distribusi yang sesuai. Mendistribusikan dalam format PowerPoint Microsoft Office adalah salah satu aplikasi terinstal paling luas ...

Buka PowerPoint Presentation Gallery di Office 2011 untuk Mac - dummies

Buka PowerPoint Presentation Gallery di Office 2011 untuk Mac - dummies

Perilaku default untuk membuka PowerPoint 2011 untuk Mac adalah menampilkan opsi All Themes dari PowerPoint Presentation Gallery. Anda juga bisa menampilkan Galeri Presentasi ini dengan memilih File → New dari Template atau dengan menekan Shift-Command-P. Dua tema pertama dalam kategori Semua Template adalah Putih dan Hitam, tema yang Anda gunakan untuk ...

Merencanakan presentasi PowerPoint Anda di Office 2008 untuk perencanaan Mac - dummies

Merencanakan presentasi PowerPoint Anda di Office 2008 untuk perencanaan Mac - dummies

Dapat berjalan jauh menuju pembuatan Office 2008 Anda untuk slide Mac PowerPoint lebih baik lagi. Meski membuat presentasi PowerPoint tidaklah sulit, menciptakan yang bagus, yang mudah diingat butuh pemikiran dan perencanaan. Pertimbangkan saran berikut sebelum mulai mengerjakan presentasi slide show PowerPoint Anda. Gunakan aturan 10/20/30 Berikut adalah beberapa saran PowerPoint yang bagus dari ...