gpt4 book ai didi

python - 在 Python 中查找 `n` 正数加起来等于 `k` 的所有组合?

转载 作者:行者123 更新时间:2023-12-04 02:35:06 25 4
gpt4 key购买 nike

<分区>

我如何在 Python 中有效地找到 n 个正整数加起来等于给定数字 k 的所有可能组合?

我知道我可以通过过滤所有可能的组合来解决这个问题:

import itertools


def to_sum_k(n, k):
for i in itertools.product(range(1, k - n + 2), repeat=n):
if sum(i) == k:
yield i


print(list(to_sum_k(3, 5)))
# [(1, 1, 3), (1, 2, 2), (1, 3, 1), (2, 1, 2), (2, 2, 1), (3, 1, 1)]

我看到类似的东西已经以抽象的方式讨论过here ,但我没有看到将其转换为代码的简单方法。


此外,与递归解决方案相比,我更喜欢迭代解决方案。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com