Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menjana Partition Integer dengan Cekap dalam Python?

Bagaimana untuk Menjana Partition Integer dengan Cekap dalam Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-08 11:10:021023semak imbas

How to Efficiently Generate Integer Partitions in Python?

Kod Python Elegan untuk Pembahagian Integer

Masalah Pembahagian Integer bertujuan untuk mencari semua cara yang mungkin untuk menyatakan integer sebagai jumlah integer positif. Semasa menyelesaikan masalah ini, adalah berfaedah untuk melaksanakan kod yang bersih dan cekap untuk meningkatkan gaya pengekodan.

Salah satu pendekatan ialah menggunakan fungsi penjana rekursif, seperti yang ditunjukkan dalam penyelesaian yang dicadangkan:

<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>

Penyelesaian ini mengatasi prestasi sebelumnya oleh Nolen dengan lebih pantas dan ringkas, seperti yang ditunjukkan dalam perbandingan masa yang disediakan. Walau bagaimanapun, ia kekal kurang cekap berbanding fungsi accel_asc.

Versi kod lain boleh didapati di ActiveState's Generator For Integer Partitions (Python Recipe).

Atas ialah kandungan terperinci Bagaimana untuk Menjana Partition Integer dengan Cekap dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn