展开“ m”个依赖循环

时间:2019-01-13 09:17:47

标签: loops time-complexity

考虑到我有以下嵌套的for-loops

for(i1=1 to n)
   for(i2=1 to i1)
       for(i3=1 to i2)
           for(i4=1 to i3)
               for(i5=1 to i4)
                   count++;

count将增加多少次?

如果有'm'个这样的依赖循环,我们如何计算计数变量的值?

1 个答案:

答案 0 :(得分:1)

您可以尝试一些数字并找到答案。 (在您的示例中,以m = 5为准,{{1}等于1,6,21,56,126可获得n

提示-将会是1,2,3,4,5(您可以使用The On-Line Encyclopedia of Integer Sequences来找到它)

因此对于Binomial coefficients C(n,5)嵌套循环,您将得到m等于count->因为最小值是在选择C(n+m-1,m)元素,所以第一个m元素m的二项式系数为0-您可以在here中了解更多信息。

为什么这是答案?它实际上是一个数学问题-但简单的解释:检查m-它是数字之间的差之和-您的情况,每个循环取两个高位之和-在您的循环中,每个循环取高位索引-相同方法论