Wie generiert man ganzzahlige Partitionen in Python effizient?

Mary-Kate Olsen
Freigeben: 2024-11-08 11:10:02
Original
962 Leute haben es durchsucht

How to Efficiently Generate Integer Partitions in Python?

Eleganter Python-Code für die Ganzzahlpartitionierung

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage