Ich habe ein Mind Challenge-Rätsel, das ich mit Python auflösen will. Sie geben 4 Zahlen (25, 28, 38, 35) und sie wollen, dass wir die Zahlen in ... + ...-... = ... setzen. Eine mögliche Lösung ist 25 + 38-35 = 28. Ive versuchte, eine Liste von den Zahlen zu machen, durchläuft sie mit einigen Schleifen und ein, wenn: lst = [25, 28, 38, 35]Python: durch eine Liste iterieren
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
Aber wenn ein Lauf des für Schleifen sie wiederholen die Zahlen, (25 + 25-25 = 25) und das funktioniert nicht. Wie kann ich es lösen?
Blick in itertools.permutations – user2097159
Ganz abgesehen von dem besten Weg zu allen Permutationen in Python zu sehen, betrachten (durch Hinzufügen "c" auf beiden Seiten der Gleichung), dass Sie nach zwei beliebigen Werten aus den vier suchen, die zusammen die Hälfte der Summe ergeben. Sie brauchen also nicht alle 24 Permutationen, Sie könnten nur 6 Partitionen betrachten: die ersten 6 Werte von 'itertools.permutations (lst, 2)'. Und wenn die Werte ganze Zahlen sind und die Summe ungerade ist, dann vergiss es :-) –