gpt4 book ai didi

python - 关于从n个元素中找出m个元素的所有组合的算法分析问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:37:34 27 4
gpt4 key购买 nike

我正在用 Python 编写一个算法,从 n 个元素中找出 m 个元素的所有组合。

我看过评论但没有评论,所以我很难理解这个问题。

当 n = 7 时,代码的结果是 (0,1,2,3), (0,1,2,4) ... (3,4,5,6)。

但是我对 picked 和 to_pick 在代码中的作用有歧义。

代码

def pick(n, picked, to_pick):
if to_pick is 0:
return print(picked)

if len(picked) is 0:
smallest = 0
else:
smallest = picked[-1] + 1

for next in range(smallest, n):
picked.append(next)
pick(n, picked, to_pick - 1)
picked.pop()


if __name__ == '__main__':
result = list()
pick(7, result, 4)

最佳答案

picked 是当前选择的有序结果组合
to_pick 是进行完全组合所需的元素数

想象一下中间级别 - 例如,您有 picked=[1,2] ,所以 to_pick 是 2(还需要 2 个元素),您可以从 3..7 范围中获取下一个元素

注意小的逻辑缺陷——如果你现在选择 7,你无法进行下一步并获得完整的 4 项组合(只是过多的空调用),因此将 for 循环的上限限制为 n - to_pick

关于python - 关于从n个元素中找出m个元素的所有组合的算法分析问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55368464/

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