ページ 11

多重ループの計算回数について

Posted: 2010年2月20日(土) 23:12
by R
LU分解の乗算、除算回数を求める為に次のようなコードを書きました
int i,j,k,n;
    int waru=0,kakeru=0;
    n=5;
    for( i = 0; i < n; i++ ){
        for( j = i+1; j < n; j++ ){
            waru++;
            for( k = i+1; k < n; k++ ){
                kakeru++;
            }
        }
    }
waruとkakeruの回数をnの式で表したいので、次のような考えで計算してみたのですがうまくいきません

iによるループがn回
jによるループはΣ[k=1,n](n-(k+1)-1) = Σ[k=1,n](n-k-2)にiによるループ回数をかけたもの
kによるループはjによるループの時と同じようにΣ[k=1,n](n-k-2)にjによるループ回数をかけたもの
一般にループが入れ子に鳴っている場合外側のループ回数と内側のループ回数をかければ内側のループ内の命令が実行される回数が求まるはずなのでこれでいいかと思ったのですがプログラムで計算したwaruやkakeruとあわないのでどうも間違っているようです
どのように考えればいいのか教えていただけないでしょうか 画像

Re:多重ループの計算回数について

Posted: 2010年2月21日(日) 01:59
by R
自己解決しました
お騒がせしました