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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
R

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

#1

投稿記事 by R » 15年前

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とあわないのでどうも間違っているようです
どのように考えればいいのか教えていただけないでしょうか 画像

R

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

#2

投稿記事 by R » 15年前

自己解決しました
お騒がせしました

閉鎖

“C言語何でも質問掲示板” へ戻る