用于整数分区的优雅 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中文网其他相关文章!