假设您将程序作为N的函数计时并产生 下表。
N seconds
-------------------
19683 0.00
59049 0.00
177147 0.01
531441 0.08
1594323 0.44
4782969 2.46
14348907 13.58
43046721 74.99
129140163 414.20
387420489 2287.85
估算作为N的函数的运行时间的增长顺序。 假设运行时间服从幂律T(N)~n N ^ b。为您 回答,输入常数b。您的答案将被标记为正确 如果它在目标答案的1%范围内 - 我们建议使用 小数分隔符后面的两位数,例如2.34。
有人可以解释如何计算吗?
答案 0 :(得分:8)
嗯,这是一个简单的数学问题。
I : a*387420489^b = 2287.85 -> a = 387420489^b/2287.85
II: a*43046721^b = 74.99 -> a = 43046721^b/74.99
III: (I and II)-> 387420489^b/2287.85 = 43046721^b/74.99 ->
-> http://www.purplemath.com/modules/solvexpo2.htm
使用对数来解决。
答案 1 :(得分:3)
1.您应该计算从一行到下一行的增长变化的比率
N seconds
--------------------
14348907 13.58
43046721 74.99
129140163 414.2
387420489 2287.85
2.计算N
的变化比率43046721 / 14348907 = 3
129140163 / 43046721 = 3
因此,N的变化率为3。
3.计算变化的秒数比率
74.99 / 13.58 = 5.52
现在让我们检查一下多一行的比例,以确保
414.2 / 74.99 = 5.52
所以秒的变化比率为5.52
4.建立以下设施
3^b = 5.52
b = 1.55
最后我们得出运行时间增长的顺序为1.55。