Finden Sie bei einer Liste von Zahlen alle Matrizen so, dass jede Spalte und Zeilensumme bis zu 264 Summe
Posted: 07 Apr 2025, 02:46
Nehmen wir an, ich habe eine Liste von 16 Zahlen. Mit diesen 16 Zahlen kann ich verschiedene 4x4 -Matrizen erstellen. Ich möchte alle 4x4 -Matrizen finden, in denen jedes Element in der Liste einmal verwendet wird und wo die Summe jeder Zeile und jedes Colum 264 entspricht. wird zu einer Liste, in der jedes Element eine Liste mit 4 Elementen ist, in der die Summe der 4 Elemente = 264. Ich betrachte diese als meine Zeilen. Dann möchte ich alle Permutationen meiner Zeilen nehmen, da Addition kommutativ ist. < /P>
for i in range(0, len(result)):
candidates.append(list(itertools.permutations(result)))
< /code>
Now given all my possible rows where the sum is 264. I'd like to choose all combinations of 4 rows, such that every column's sum is 264.
test = []
for i in range(0, len(candidates)):
test = test + candidates
result2 = [x for x in itertools.combinations(test, 4) if list(map(add, x[0], list(map(add, x[1], list( map(add, x[2], x[3])))))) == [264, 264, 264, 264]]
< /code>
Is there a faster/better way? The last part, finding all combinations of 4 rows, takes a lot of time and computer power.
Code: Select all
numbers = [11, 16, 18, 19, 61, 66, 68, 69, 81, 86, 88, 89, 91, 96, 98, 99]
candidates = []
result = [x for x in itertools.combinations(numbers, 4) if sum(x) == 264]
< /code>
result
for i in range(0, len(result)):
candidates.append(list(itertools.permutations(result)))
< /code>
Now given all my possible rows where the sum is 264. I'd like to choose all combinations of 4 rows, such that every column's sum is 264.
test = []
for i in range(0, len(candidates)):
test = test + candidates
result2 = [x for x in itertools.combinations(test, 4) if list(map(add, x[0], list(map(add, x[1], list( map(add, x[2], x[3])))))) == [264, 264, 264, 264]]
< /code>
Is there a faster/better way? The last part, finding all combinations of 4 rows, takes a lot of time and computer power.