用於整數分區的優雅Python 代碼
將整數分區為更小的正整數提出了計算挑戰,引發了各種解決方案的開發。為了提高編碼風格和效率,我們尋求一種優雅的方法來解決這個問題。
響應者提出的一個這樣的解決方案是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>
這個函數產生整數 n 的所有分區,同時從大小不小於 I 的部分開始。與 Nolen 的函數相比,partitions() 速度要快得多,並且產生的結果更小。
但是,這兩個函數都比 accel_asc 慢得多() 函數,採用加速升序演算法。 Accel_asc() 使用迭代循環對整數進行分區,從而提高速度和記憶體效率。
如需進一步參考,您可以在ActiveState 的整數分區生成器(Python 配方)頁面上探索其他用於整數分區的Python 解決方案.
我們的討論重點介紹了可用於解決Python 中整數分區問題的各種方法,以滿足對速度、記憶體效率和編碼風格優雅的不同需求。
以上是如何在Python中實現優雅高效的整數分割區?的詳細內容。更多資訊請關注PHP中文網其他相關文章!