Loops 展开';m';依赖循环

Loops 展开';m';依赖循环,loops,time-complexity,Loops,Time Complexity,假设我对循环有以下嵌套的: 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++; 计数将增加多少次 如果有“m”个这样的依赖循环,我们如何计算count变量的值呢?您可以尝试一些数字并得到答案。(在您的示例中,以m=5为例,对于nequal1,2,3,4,5,您将得

假设我对循环有以下嵌套的

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++;
计数将增加多少次


如果有“m”个这样的依赖循环,我们如何计算count变量的值呢?

您可以尝试一些数字并得到答案。(在您的示例中,以
m=5
为例,对于
n
equal
1,2,3,4,5
,您将得到
1,6,21,56126

提示-它将是
二项式系数C(n,5)
(您可以使用它来查找)

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

为什么这是答案?这实际上是一个数学问题——但简单的解释是:检查帕斯卡三角形——这是数字之间差异的总和——你的情况,每个循环取两个上一个的总和——在你的循环中,每个循环直到上一个索引为止——相同的方法