需求:Python3 找出所有相加之和为n的k个组合
问题描述:
Python3 找出所有相加之和为n的k个组合,组合中只允许含有正整数,组合中可以有重复数字,每一项至少为1。
例如:k = 6 n = 25
类似于,把n个球,放到k个盒子中,所有不同的组合方式,每个盒子至少一个球。
答
代码如下:
def res(k,sums):
from itertools import combinations,combinations_with_replacement
x=list(combinations_with_replacement(range(1,9),k))
result=[num for num in x if sum(num)==sums]
return result
print(res(6,25))