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
Lepaskan: 2024-11-08 11:10:02
asal
1088 orang telah melayarinya

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>
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan