[問題] 如何使用回溯法找一組解

看板C_and_CPP作者 (東東)時間15年前 (2010/08/15 15:52), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
想請教一下大家 Backtracking 看書上寫 通常都是用在最優化問題,藉由Constraint和Bounding function來走過整個解空間。 我想請問 那如果我只是要找一組解,要怎麼退出Recursive的function call呢? 限制條件該怎麼寫?? 我寫了一個用Backtracking來判斷array {8,15,2,3}加起來最接近13而值<13 的value http://nopaste.csie.org/2cad6 我想問說如果我想改成只要找到一組解cw(current weight)加起 == 17就跳出去 並印出array[]選取情況 For eg: 0110 // 因為 0 + 15 + 2 + 0 == 17 要怎麼修改這個code呢?我一直不知道要怎麼寫return 跳出這 recursive function stack謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.168.71.40

08/15 15:54, , 1F
想辦法讓 backtrack() 告訴上一層我找到答案了請跳出
08/15 15:54, 1F

08/15 16:06, , 2F
成功了 謝謝樓上大大
08/15 16:06, 2F
文章代碼(AID): #1CPvohTo (C_and_CPP)