gpt4 book ai didi

python - 按变量的嵌套循环数

转载 作者:行者123 更新时间:2023-12-01 03:30:25 26 4
gpt4 key购买 nike

我希望我的程序找到 x 个整数的组合,其值在一定范围内,总和等于给定数字。

例如:我想找到 3 个整数的组合,其值可以在 0 到 2 之间,并且总和等于 5。我可以通过编码来做到这一点:

possibilities = []
total = 5
valueRange = 3
for num1 in xrange(valueRange):
for num2 in xrange(valueRange):
for num3 in xrange(valueRange):
if num1 + num2 + num3 == total:
possibilities.append([num1, num2, num3])

我可以通过更改我创建的变量来更改总和值和范围值,但是如何使用变量指定嵌套循环的数量?谢谢

最佳答案

itertools.product()函数应该有帮助:

>>> [values for values in product(range(3), repeat=3) if sum(values) == 5]
[(1, 2, 2), (2, 1, 2), (2, 2, 1)]

看到答案包含相同答案的字谜,您可以使用 itertools.combinations_with_replacement() 进一步减少工作量。 :

>>> # 4 digits in [0, 1, 2, 3, 4] summing to 6
>>> for values in combinations_with_replacement(range(5), 4):
if sum(values) == 6:
print(values)

(0, 0, 2, 4)
(0, 0, 3, 3)
(0, 1, 1, 4)
(0, 1, 2, 3)
(0, 2, 2, 2)
(1, 1, 1, 3)
(1, 1, 2, 2)

关于python - 按变量的嵌套循环数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40999883/

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