0

与えられた N (>= 1) に対して、これらのループによって実行される反復回数を計算するにはどうすればよいですか?

for (1 <= k <= N)
    for (0 <= i < 6)
        for (0 <= j < k)
            ...

特に、最外ループの値に依存するため、最内ループの処理方法に問題があります。基本的には のようなものになりますがN * 6 * ???、どう???あるべきかわかりません

4

2 に答える 2

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
于 2013-08-08T13:03:32.000 に答える