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
equal1,2,3,4,5
,您将得到1,6,21,56126
)
提示-它将是二项式系数C(n,5)
(您可以使用它来查找)
因此,对于m
嵌套循环,您将得到count
等于C(n+m-1,m)
->,因为最小值是拾取m
元素,所以m的二项式系数中的第一个m
元素为0-您可以在中了解更多信息
为什么这是答案?这实际上是一个数学问题——但简单的解释是:检查帕斯卡三角形——这是数字之间差异的总和——你的情况,每个循环取两个上一个的总和——在你的循环中,每个循环直到上一个索引为止——相同的方法