Saya berasal dari latar belakang fisika, dan dengan demikian, banyak matematika. Saya menemukan masalah yang mudah dikenali cocok untuk solusi pemrograman rekursif / dinamis dengan menemukan kesamaan dengan bukti dengan induksi .
Dibuktikan dengan induksi Anda memiliki dua bagian:
- Anda membuktikan bahwa jika sesuatu benar untuk iterasi N, itu juga berlaku untuk iterasi N +1
- Anda membuktikan bahwa itu benar untuk iterasi 1
Dalam pemrograman rekursif / pemrograman dinamis:
- Anda mengidentifikasi kondisi keluar (misalnya, Anda memasang solusi untuk iterasi 1)
- Anda menghitung solusi untuk iterasi N yang diberikan solusi untuk iterasi N-1
Jadi, ketika orang lain menjawab, itu adalah masalah pengalaman dan mengambil petunjuk, tetapi Anda dapat menggunakan kembali keterampilan lain untuk membimbing Anda. Setelah itu, Anda harus selalu memiliki dua bagian yang saya sebutkan: jika tidak, maka tidak akan berfungsi.
Misalnya, untuk menghasilkan semua permutasi dari set:
- kondisi keluar: jika Anda hanya memiliki satu elemen, kembalikan
- rekursi: permutasi dari set item N adalah set permutasi N yang Anda dapatkan dengan memilih setiap elemen dan menggabungkan semua set N-1 dari (banyak) permutasi dari subset yang Anda dapatkan dengan menghapus elemen tersebut.