0

組み込みソフトウェア コースの過去の論文の質問に行き詰まっています。

質問は次のように尋ねます。

Let n be the number of iterations of the while loop. Calculate an upper and lower bound on the value of n given that b <= bmax.

x=a
if x<1
then 
  x=1
end if
while x<b
  loop
    x=x+1
  end

上限は n<=bmax になると思いますが、下限の計算方法がわかりません。誰でも助けることができますか?

ありがとう

4

4 に答える 4

3

下限については、a > 1 のときにそれが得られます。その場合、x は 1 ではなく a から始まるため、そこから b に到達するまでの反復回数が少なくて済みます。

x = a で開始し、最後の反復が x = b のときに発生した場合 (テストに失敗した場合)、合計 b - a 反復が必要です。b <= bmax なので、答えは次のとおりです。

lower bound : bmax - a
upper bound : bmax - 1

a >= bmax の場合、反復回数が 0 回未満になることはできないため、下限が 0 になることに注意してください。

于 2013-04-21T21:41:42.093 に答える
0

提供された情報のみが与えられた場合、できる最善のことは、自明な下限 - 0 反復です。これはa>=b、ループがまったく実行されないためです。

上限に関しては、1 つのエラーでオフになっています。xは最小で 1 から開始されるため、 ではなく までの反復bmax-1を行うことができますbmax

于 2013-04-21T21:44:56.527 に答える
0
upper bound: max(0,b-1) <= max(0,bmax-1)

lower bound: if (a<1) then max(0,b-1), else max(0,b-a)

ではなく があるため、下限を b の代わりに bmax で表すことはできませb<=bmaxbmax<=b。の使用が許可されていない場合b、それは0です。

于 2016-02-03T13:16:45.943 に答える
0

問題は次のとおりだと思います:bはb <= bmaxです。反復回数 n を bmax と a で表します。n の下限は自明0ですa >= bmax。n の上限は casea < 1で、次の結果が得られますn = bmax - 1

于 2013-04-21T21:47:34.390 に答える