Eleganter Python-Code für die Ganzzahlpartitionierung
Die Partitionierung einer Ganzzahl in kleinere positive Ganzzahlen stellt eine rechnerische Herausforderung dar, die zur Entwicklung verschiedener Lösungen geführt hat. Um den Codierungsstil und die Effizienz zu verbessern, suchen wir nach einem eleganten Ansatz zur Lösung dieses Problems.
Eine solche von einem Antwortenden vorgeschlagene Lösung ist die Funktion „partitions()“:
<code class="python">def partitions(n, I=1): yield (n,) for i in range(I, n//2 + 1): for p in partitions(n-i, i): yield (i,) + p</code>
Diese Funktion generiert alle Partitionen einer ganzen Zahl n, wobei mit Teilen der Größe nicht kleiner als I begonnen wird. Im Vergleich zu Nolens Funktion ist partitions() erheblich schneller und liefert kleinere Ergebnisse.
Allerdings sind beide Funktionen viel langsamer als accel_asc ()-Funktion, die einen beschleunigten aufsteigenden Algorithmus verwendet. accel_asc() verwendet eine iterative Schleife, um die Ganzzahl zu partitionieren, was sowohl zu Geschwindigkeit als auch Speichereffizienz führt.
Zur weiteren Referenz können Sie weitere Python-Lösungen für die Ganzzahlpartitionierung auf der Seite „Generator für Ganzzahlpartitionen (Python-Rezept)“ von ActiveState erkunden .
Unsere Diskussion beleuchtet die verschiedenen verfügbaren Ansätze zur Lösung des Ganzzahlpartitionierungsproblems in Python, die auf unterschiedliche Anforderungen an Geschwindigkeit, Speichereffizienz und Eleganz des Codierungsstils eingehen.
Das obige ist der detaillierte Inhalt vonWie können wir eine elegante und effiziente Ganzzahlpartitionierung in Python erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!