Код: Выделить всё
sum([i*j for i,j in zip(w,f)]) == aКод: Выделить всё
from itertools import product
a = 20
w = [1,1,3,3]
rslt = []
for f in product(range(a), repeat=len(w)):
if sum([i*j for i,j in zip(w,f)]) == a:
rslt.append(list(f))
print(rslt)
I пришел в голову идея рекурсивной функции, которая вычисляет разницу с на данном этапе цикла, но у меня возникли проблемы с реализацией. Если возможно иметь реализацию, которая также выполняет произвольные ограничения (например, квадратичные), это было бы здорово.
Подробнее здесь: https://stackoverflow.com/questions/792 ... -in-python
Мобильная версия