【发布时间】:2020-12-04 20:52:37
【问题描述】:
所以我有以下问题:
function f(n)
local z=1
for a=1,n do
for b=1,z do
for c=1,z do
z=z+1
end
end
end
return z
end
然后它给了我以下选项:
请给出以下最佳答案。
f(n) = ...
O(2^(2^n)) O(2^(2^(2^(2^(2^(2^n)))))) O(2^n) O(2^(2^(2^n))) O(2^(2^(2^(2^(2^n))))) none of the others here O(2^(2^(2^(2^n))))
这是为我的 lua 计算课准备的,我只是不知道该怎么做,我知道有一个三重循环,很可能不是z,它们都是n,而是O(n^3),但是对于这个我不太确定。
我希望有人可以帮助/解释如何解决这样的问题。
谢谢。
【问题讨论】:
-
z何时在此声明for b=1,z do ...中得到评估?也许它比我们想象的更简单?或者,试一试,发现它的高阶……`f(4)`还没有返回…… -
正确答案是“这里没有其他人”。时间等于
g(g(..g(1)..),其中g应用n-1次和g(z)=z*2^z。它的增长速度比任何固定长度的动力链都快2^2^2...
标签: algorithm lua time-complexity runtime