鍍金池/ 問答/人工智能/ 從一系列數(shù)字中任意組合相加后等于某個值的所有組合算法?

從一系列數(shù)字中任意組合相加后等于某個值的所有組合算法?

問題描述:

一組數(shù)字 list = [5,10,15,45,10,30,25,35,40,10,20,20],可能有重復(fù),要求列出所有組合,使得組合中的數(shù)字之和為 50,或指定某個數(shù)值。

比如:上面的那一列數(shù)字可以產(chǎn)生組合:

5 + 10 + 15 +20 = 50
20 + 20 + 10 = 50 
45 + 5 = 50
10 + 10 + 30 = 50
10 + 10 + 10 + 20 = 50 // list 中有 3 個 10
....

等等。

要列出所有和為 50的組合,list 里的元素可能重復(fù)。
這是屬于什么算法模型?不太懂,希望指教下。

回答
編輯回答
念舊

應(yīng)該是樓上的,
如果S是結(jié)果集用S(a[1,n],50)表示所有組合是50的解。
S(a[1..n],50)={a[1]+S(a[2..n],45)}+{S(a[2..n],50)}

2017年7月31日 23:50
編輯回答
綰青絲

這是貪心算法的0-1背包問題嗎?

2017年7月31日 03:07