【发布时间】:2013-03-30 07:22:27
【问题描述】:
我已经尝试解决这个问题一个多月了。 我有一个数字列表和这些变量:
list_num = [1, 1, 2, 3, 5, 6, 1, 1, 3, 4, 4]
#x is number of numbers in combination eg. if x = 5 combiantions will look like this [n,n,n,n,n], where n is possible member of list _num
x = 5
#y is a sum of numbers inside combination
y = 10
我需要生成这些数字的所有可能组合,因为 x 是组合数字的数量,而 y 是总和组合的数字,还必须考虑 list_num 内的重复次数。
我可以通过生成所有可能的组合并消除不是由我的规则确定的组合来做到这一点,但是这种方法很混乱,我不能将它用于大量数据。在我的原始程序中 list_num 可以有数百个数字和变量 x 和 y 可以有很大的值。
这个例子的几个组合:
comb1 = [1,1,2,3,3], x = 5, y = 10
comb2 = [1,1,1,2,5], x = 5, y = 10
comb3 = [1,1,1,1,6], x = 5, y = 10
...
我会很感激一些新的想法,我没有任何剩余:)
【问题讨论】:
-
对
x和y有任何限制吗? -
给出明确的变量名:)
-
默认语言环境,很明显 x 不能大于 len(num_list) 并且 y 必须是可能的两者都是整数。 Quonux 明确的变量名是什么意思?
-
comb1,comb2,comb3 中的y 是数字的总和。但它不在list_num 中。 comb1,comb2,comb3 有重复的被计数的数字。我不太理解您的示例以及“必须计算重复数字”的意思
标签: python algorithm combinations