Oke, Kita mau mengubah bilangan \( n \) menjadi 1 dengan langkah-langkah yang diberikan dan kita ingin tahu jumlah langkah minimum yang diperlukan. Kita bisa menggunakan algoritma Dijkstra untuk menyelesaikan ini.
• Langkah-Langkah
1.Inisialisasi :
- Priority Queue : Tempat simpan angka dan jumlah langkahnya. Kita proses angka yang langkahnya paling sedikit dulu.
- Distance Array : Menyimpan langkah minimum untuk mencapai setiap angka dari \( n \).
2. Proses Dijkstra :
- Ambil angka dengan langkah minimum dari priority queue.
- Coba langkah-langkah berikut:
- Kurangi 1 dari angka.
- Bagi 2 kalau angkanya genap.
- Bagi 3 kalau angkanya bisa dibagi 3.
- Update langkah minimum jika langkah baru lebih baik dan tambahkan angka baru ke antrian.
3. Selesaikan :
- Kalau sudah sampai angka 1, kembalikan jumlah langkah yang diambil.
Mengimplementasikan Dalam Bentuk Progam Algoritma Dijkstra Bahasa C++
Penjelasan Program
1. Priority Queu : Tempat simpan angka dengan langkah paling sedikit di atas. Ini memastikan kita proses angka yang langkahnya paling sedikit dulu.
2. Distance Array : Menyimpan langkah minimum untuk setiap angka. Awalnya, semua angka diset ke nilai maksimum, kecuali angka \( n \) yang diset ke 0.
3. Proses :
- Ambil angka dengan langkah minimum dari priority queue.
- Kurangi 1 : Kalau angkanya lebih dari 1 dan langkah baru lebih baik, update langkah dan tambahkan angka baru ke queue.
- Bagi 2 dan 3 : Kalau angkanya genap atau bisa dibagi 3, perbarui langkah dan tambahkan angka baru ke queue.
"tambahkan angka baru ke queue" ini bertujuan untuk mengubah angkanya sampai menjadi ke angka 1
Nah, untuk \( n = 25 \), prosesnya seperti ini:
1. 25 - 1 = 24 : Kurangi 25 jadi 24.
2. 24 / 2 = 12 : Bagi 24 jadi 12.
3. 12 / 2 = 6 : Bagi 12 jadi 6.
4. 6 / 2 = 3 : Bagi 6 jadi 3.
5. 3 / 3 = 1 : Bagi 3 jadi 1.
Jadi, jumlah langkah minimum untuk ubah 25 jadi 1 adalah 5. Nah, Algoritma Dijkstra ini sangat membantu untuk menemukan jalur tercepat ini dengan sistematis.
Sekian terima kasih, semoga apa yang saya sampaikan jelas dan semoga kalian berhasil menjalankan programnya.

0 Komentar