Перебирать комбинации сумм в Python 3
m ищет способ найти все комбинации сумм с элементами последовательности Фибоначчи с заданным пределом, равным этому же значению. я знаю этоcombinations()
отitertools
наша лучшая ставка в решении таких проблем, но, как яЯ новичок в Python. Мне нравится знать, как я могу сохранить соответствующие комбинации (так как только одна верна, поскольку это не конец алгоритма).
У меня сейчас есть:
# Call Fibonacci sequence with a given limit:
def fib1(n):
result = []
a, b = 1, 1
while a < n:
result.append(a)
a, b = b, a + b
return result
# Wrong code, skeleton:
def zeckendorf(n):
from itertools import combinations
seq = fib1(n)
row = []
sum = 0
for i in combinations(seq, len(seq)):
sum += i
row.append(i)
if sum > n:
sum = 0
row = []
continue
elif sum == n:
break
return row
Теперь я знаю, что второй бит неверен во многих отношениях. Также я делаю ошибку, пытаясь добавить кортежи к целым числам. Мне просто нужно знать, как я могу перебирать отдельные элементы этих комбинаций отдельно с помощью модуля itertools. Только комбинации с суммой 'n' полезны для меня.