2015-10-19 75 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

相关问题