从1到100的整数中随机10个,然后和为100的组合有哪些?
2 回答
一只甜甜圈
TA贡献1836条经验 获得超5个赞
如果是100个数里求10个和为100的数的组合,组合情况比较多,暴力不可取。
def get_combs(n=100, k=10, tg=100): combs = [] x = tg - sum(range(1, k)) def dfs(comb, idx=0, k=k, t=tg): dmx = min(tg - sum(comb), x, n) arr = range(1, dmx + 1) if t == 0 and k == 0: combs.append(comb[:]) return if dmx <= idx or k < 0 or t < 0: return for i in range(idx, dmx): v = arr[i] dfs(comb + [v], i + 1, k - 1, t - v) dfs([]) return combs
添加回答
举报
0/150
提交
取消