Mam problem z zagadką, którą chcę rozwiązać za pomocą pythona. Dają 4 numery (25, 28, 38, 35) i chcą, abyśmy umieścili liczby w ... + ...-... = ... Jednym z możliwych rozwiązań jest 25 + 38-35 = 28. Ive próbował, tworząc listę z numerami, iteracyjne je z niektórych pętli i jeżeli: LST = [25, 28, 38, 35]Python: iteracja poprzez listę
for z in lst:
for x in lst:
for c in lst:
for v in lst:
if z+x-c==v:
print z,x,c,v
Ale kiedy Uruchom pętli powtarzają liczby (25 + 25-25 = 25) i to nie działa. Jak mogę to rozwiązać?
Look w itertools.permutations – user2097159
Dość oprócz najlepszego sposobu patrzenia na wszystkich permutacji w Pythonie, należy rozważyć (poprzez dodanie "c" po obu stronach równania), że szukasz dwóch wartości z czterech, które razem sumują do połowy sumy. Więc nie potrzebujesz wszystkich 24 permutacji, możesz wziąć pod uwagę tylko 6 partycji: pierwsze 6 wartości z 'itertools.permutations (lst, 2)'. A jeśli wartości są liczbami całkowitymi, a suma jest nieparzysta, to zapomnij o tym :-) –