Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 计算迭代次数_Loops_Complexity Theory - Fatal编程技术网

Loops 计算迭代次数

Loops 计算迭代次数,loops,complexity-theory,Loops,Complexity Theory,对于任意给定的N(>=1),我如何计算这些循环将进行多少次迭代 for(1在不更改内部循环执行次数的情况下(尽管您将更改顺序),您可以将循环更改为:(这可以完成,因为i和j彼此独立) 也就是说,1+2+3+…+N=N(N+1)/2执行(对于这些类型的计算,这是值得了解的) 添加i只需将其增加6倍,因此我们有3*N(N+1)而不更改内部循环的执行次数(尽管您会更改顺序),您可以将循环更改为:(这可以实现,因为i和j彼此独立) 也就是说,1+2+3+…+N=N(N+1)/2执行(对于这些类型的计算,

对于任意给定的N(>=1),我如何计算这些循环将进行多少次迭代


for(1在不更改内部循环执行次数的情况下(尽管您将更改顺序),您可以将循环更改为:(这可以完成,因为
i
j
彼此独立)

也就是说,
1+2+3+…+N=N(N+1)/2
执行(对于这些类型的计算,这是值得了解的)


添加
i
只需将其增加6倍,因此我们有
3*N(N+1)

而不更改内部循环的执行次数(尽管您会更改顺序),您可以将循环更改为:(这可以实现,因为
i
j
彼此独立)

也就是说,
1+2+3+…+N=N(N+1)/2
执行(对于这些类型的计算,这是值得了解的)


添加
i
只需将其增加6倍,因此我们有
3*N(N+1)
应该是(N+1)/2,正整数的和等于N。为了确保我编写了一个powershell脚本来检查该理论:

for($N=1; $N -le 10; $N++)
{
  $totalCount = 0

  for ($k=1; $k -le $N; $k++)
  {
    for ($i=0; $i -lt 6; $i++)
    {
      for ($j=0; $j -lt $k; $j++)
      {    
        $totalCount++
      }
    }
  }

  Write-Host("Total Count for N={0} is {1}" -f $N, $totalCount)
  $calcTotal = ($N*($N+1)/2)*6
  Write-Host("Calulated total ={0}" -f $calcTotal)
}
这将产生:

Total Count for N=1 is 6
Calulated total =6
Total Count for N=2 is 18
Calulated total =18
Total Count for N=3 is 36
Calulated total =36
Total Count for N=4 is 60
Calulated total =60
Total Count for N=5 is 90
Calulated total =90
Total Count for N=6 is 126
Calulated total =126
Total Count for N=7 is 168
Calulated total =168
Total Count for N=8 is 216
Calulated total =216
Total Count for N=9 is 270
Calulated total =270
Total Count for N=10 is 330
Calulated total =330

???
应该是(N+1)/2,正整数的和等于N。为了确保我编写了一个powershell脚本来检查该理论:

for($N=1; $N -le 10; $N++)
{
  $totalCount = 0

  for ($k=1; $k -le $N; $k++)
  {
    for ($i=0; $i -lt 6; $i++)
    {
      for ($j=0; $j -lt $k; $j++)
      {    
        $totalCount++
      }
    }
  }

  Write-Host("Total Count for N={0} is {1}" -f $N, $totalCount)
  $calcTotal = ($N*($N+1)/2)*6
  Write-Host("Calulated total ={0}" -f $calcTotal)
}
这将产生:

Total Count for N=1 is 6
Calulated total =6
Total Count for N=2 is 18
Calulated total =18
Total Count for N=3 is 36
Calulated total =36
Total Count for N=4 is 60
Calulated total =60
Total Count for N=5 is 90
Calulated total =90
Total Count for N=6 is 126
Calulated total =126
Total Count for N=7 is 168
Calulated total =168
Total Count for N=8 is 216
Calulated total =216
Total Count for N=9 is 270
Calulated total =270
Total Count for N=10 is 330
Calulated total =330

似乎是正确的,但N=1将导致0次迭代遵循您的公式,当它实际循环6次时(易于遵循)似乎是正确的,但N=1将导致0次迭代遵循您的公式,当它实际循环6次时(易于遵循)
Total Count for N=1 is 6
Calulated total =6
Total Count for N=2 is 18
Calulated total =18
Total Count for N=3 is 36
Calulated total =36
Total Count for N=4 is 60
Calulated total =60
Total Count for N=5 is 90
Calulated total =90
Total Count for N=6 is 126
Calulated total =126
Total Count for N=7 is 168
Calulated total =168
Total Count for N=8 is 216
Calulated total =216
Total Count for N=9 is 270
Calulated total =270
Total Count for N=10 is 330
Calulated total =330