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...
Natürlich habe ich noch eine andere Frage zum Typ einer EmptyList, einer SingleList und einer ArrayList...
Die Idee ist, dass ich sie verwenden kann, wenn ich meine CircularList schreibe muss mit den...