0

昨日、私はコンピュータ工学の修士号を申請しましたが、それは彼らの質問の1つでした。私はそれを解決することができなかったので、私は非常に興味がありました。

...
i = 1;
while (i <= n)
{
    i = i * 2;
}
...

このwhileループが何回実行されるか、式として答えてください。例:log n .. ..

ありがとう

4

1 に答える 1

6

ループのx回目の反復では、2 xiに等しくなります(これは誘導によって簡単に証明できます)。X回の反復後にループが停止するとします。これはn< 2Xを意味します。これは、反復X-1でループがまだ実行されていたため、2X-1≤nであることも意味します。言い換えると :

2X - 1≤n< 2X

そこから、log 2(n)の関数としてXを見つけるのは簡単です。

于 2012-06-26T13:03:11.343 に答える