Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menjana Partition Integer dengan Cekap dalam Python?
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!