Kod Python Elegan untuk Pembahagian Integer
Pembahagian integer kepada integer positif yang lebih kecil memberikan cabaran pengiraan yang telah mencetuskan pembangunan pelbagai penyelesaian. Untuk meningkatkan gaya dan kecekapan pengekodan, kami mencari pendekatan yang elegan untuk menyelesaikan masalah ini.
Salah satu penyelesaian sedemikian, yang dicadangkan oleh responden, ialah fungsi partitions():
<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>
Fungsi ini menjana semua partition integer n sambil bermula dengan bahagian saiz tidak lebih kecil daripada I. Berbanding dengan fungsi Nolen, partitions() jauh lebih pantas dan menghasilkan hasil yang lebih kecil.
Walau bagaimanapun, kedua-dua fungsi jauh lebih perlahan daripada accel_asc () fungsi, yang menggunakan algoritma menaik dipercepatkan. accel_asc() menggunakan gelung berulang untuk membahagikan integer, menghasilkan kedua-dua kelajuan dan kecekapan memori.
Untuk rujukan lanjut, anda boleh meneroka penyelesaian Python tambahan untuk pembahagian integer pada halaman ActiveState's Generator For Integer Partitions (Python Recipe) .
Perbincangan kami menyerlahkan pelbagai pendekatan yang tersedia untuk menyelesaikan masalah pembahagian integer dalam Python, memenuhi keperluan berbeza untuk kelajuan, kecekapan memori dan keanggunan gaya pengekodan.
Atas ialah kandungan terperinci Bagaimanakah Kita Boleh Mencapai Pembahagian Integer yang Elegan dan Cekap dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!