2015-10-19 80 views
0

什麼是這個函數的漸近增長率:漸近增長率 「INT I =常量1;而(ⅰ<N){I * = CONSTANT2;}」

int i=3; 
while(i < n) { 
    i *= 5; 
} 

我測量它:

n=3i<n執行1次

。 。

n=16i<n被執行2次

。 。

n=80i<n被執行3次

。 。

我需要找到正確的增長率,但我卡住了。

+1

想一想:這段代碼實現的數學函數是什麼?什麼是輸入(n?)和什麼是輸出(迭代次數?)? – JimmyB

+1

或者更簡單的情況:如果你有'i + = 5',增長率是多少? – JimmyB

回答

1

我認爲增長速度是:

3 * 5^x >= n 
5^x >= n/3 

因此

xlog5 >= log n - log 3 
x >= (log n - log 3)/(log 5) 

可以定義3*5^x必須>=n。我們可以用這個基礎在第一行中設置方程。

+0

也許一個暗示,如何解決這個作業會更有益於OP ... – JimmyB

相關問題