Ich möchte das kartesische Produkt einer relativ großen Anzahl von Arrays erzeugen, um ein hochdimensionales Gitter zu überspannen. Aufgrund der hohen Dimensionalität wird es nicht möglich sein, das Ergebnis der kartesischen Produktberechnung im Speicher zu speichern; Stattdessen wird es auf die Festplatte geschrieben. Aufgrund dieser Einschränkung muss ich auf die Zwischenergebnisse zugreifen, wenn sie generiert werden. Was ich bisher zu tun, ist dies:Dimensionalität agnostisch (generisch) kartesisches Produkt
for x in xrange(0, 10):
for y in xrange(0, 10):
for z in xrange(0, 10):
writeToHdd(x,y,z)
, die, abgesehen von sehr böse sein, nicht skalierbar ist (das heißt würde es erfordert ich so viele Schleifen als Dimensionen zu schreiben). Ich habe versucht, die vorgeschlagene Lösung here zu verwenden, aber das ist eine rekursive Lösung, die es daher ziemlich schwierig macht, die Ergebnisse während der Generierung zu erhalten. Gibt es einen "sauberen" Weg, dies zu tun, als eine hardcodierte Schleife pro Dimension zu haben?
Tolle Lösung! – Jake0x32