1

任意のループ (最初の要素、最後の要素、およびインクリメントの任意の数) で 1 ステップずつインクリメントするカウンターを回避するために、数学者の数式を見つけようとしています。

例 1 (1 つの for ループ):

MIN=最初の要素、MAX=最後の要素、HOP=インクリメント (変数 i)

カウンター付き:

c = 1;
for i = MIN:HOP:MAX
    c = c + 1;
end

カウンターなし:

for i = MIN:HOP:MAX
    c = floor((i-MIN)/HOP) + 1;
end

例 2 (2 つの for ループ):

MINi=最初の要素、MAXi=最後の要素、HOPi=インクリメント (変数 i)

MINj=最初の要素、MAXj=最後の要素、HOPj=インクリメント (変数 j)

カウンター付き:

c = 1;
for i = MINi:HOPi:MAXi
    for j = MINj:HOPj:MAXj
        c = c + 1;
    end
end

カウンターなし:

for i = MINi:HOPi:MAXi
    for j = MINj:HOPj:MAXj
        x = (floor((i-MINi)/HOPi)+1);
        y = (floor((j-MINj)/HOPj)+1);
        c = x*y+(x-(floor((MAXi-MINi)/HOPi)+1))*((floor((MAXj-MINj)/HOPj)+1)-y);
    end
end

2 つの for ループを使用した c 式の単純化はありますか?

ループの k を使用して c(k) を検索するための式はありますか?

4

0 に答える 0