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.
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
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.
Nehmen wir an, ich habe eine Liste von 16 Zahlen. Mit diesen 16 Zahlen kann ich verschiedene 4x4 -Matrizen erstellen. [url=viewtopic.php?t=14917]Ich möchte[/url] 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.[code]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[/code] 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[i]))) < /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[i] 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.
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...
Lassen Sie es Ganzzahl n. P> Beispiel:
Eingabe: 10
Ausgabe: 3
Erläuterung: Es gibt 3 Zahlen mit Die Summe der Divisors ist eine Prime: 2,4,9. 4: 1,2,4: sum = 1+2+4 = 7
9: 1,3,9: sum = 1+3+9 = 13...
Ich habe ein 2-D-Array und es erfordert ein Cumsum-Reihen. Aber Axis wird in Numba nicht unterstützt. Also stecke ich fest. Jede Hilfe wird geschätzt.
from numba import jit
import numpy as np...