Das Ganzzahlpartitionierungsproblem zielt darauf ab, alle möglichen Wege zu finden, um eine Ganzzahl als Summe positiver Ganzzahlen auszudrücken. Bei der Lösung dieses Problems ist es von Vorteil, einen sauberen und effizienten Code zu implementieren, um den Codierungsstil zu verbessern.
Ein Ansatz besteht darin, eine rekursive Generatorfunktion zu verwenden, wie in der vorgeschlagenen Lösung gezeigt:
<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 Lösung übertrifft eine frühere Implementierung von Nolen, indem sie deutlich schneller und präziser ist, wie die bereitgestellten Timeit-Vergleiche zeigen. Sie bleibt jedoch weniger effizient als die Funktion „accel_asc“.
Andere Codeversionen finden Sie im Generator For Integer Partitions (Python-Rezept) von ActiveState.
Das obige ist der detaillierte Inhalt vonWie generiert man ganzzahlige Partitionen in Python effizient?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!