问题描述:
一组数字 list = [5,10,15,45,10,30,25,35,40,10,20,20]
,可能有重复,要求列出所有组合,使得组合中的数字之和为 50,或指定某个数值。
比如:上面的那一列数字可以产生组合:
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 里的元素可能重复。
这是属于什么算法模型?不太懂,希望指教下。
应该是楼上的,
如果S是结果集用S(a[1,n],50)表示所有组合是50的解。
S(a[1..n],50)={a[1]+S(a[2..n],45)}+{S(a[2..n],50)}