[英]Algorithm to count the number of partitionings?
最近,我遇到了将不同宽度尺寸的小容器水平均匀分散到巨大宽度尺寸的容器中的问题。 有数百万个巨大的容器,有数十亿个小容器。 我需要想出一个算法。 我将问题简化为以下问题:
我们以Process(Number,Parts)
为例:
数字4
可以通过 3 种方式(不包括 0)分成2
部分。 Process(4,2)=3
:
1 + 3
3 + 1
2 + 2
同样,数字4
可以通过 2 种方式分成3
部分Process(4,3)=2
:
1 + 1 + 2
2 + 1 + 1
1 + 2 + 1
显然Process(4,4)=1
(不包括Process(4,1)=1
,因为它是4+0
,其中0
不应该被考虑)
我想知道有没有办法计算
SuperProcess(4)=Process(4,2)+Process(4,3)+Process(4,4)=7
时间复杂度更小? 或者换句话说,更快!
尤其是请求计算的时候: SuperProcess(1209)
是否有一些数学方法而不是粗略的循环来执行此计算?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.