如果我在多项式时间子程序中运行多项式次数,那么在指数时间内完成这种方式的一些例子是什么?
“表明对多项式时间子程序的多项式调用次数可以 导致指数时间算法。“ - HW的问题
答案 0 :(得分:7)
好吧,如果我们将此视为“肮脏的伎俩”问题:
def g(a):
b = 0
for i in range(a * 2):
b += 1
return b
def f(x):
a = 1
for i in range(x):
a = g(a)
g(a)在O(a)中运行,f(x)在调用g
之前运行O(x)次,但总体而言是O(2 ^ n)
。
答案 1 :(得分:1)
你的问题有点令人困惑。但是如果你运行一个多项式时间子程序一个多项式次数,你将永远不会得到一个指数时间函数。在运行多项式时间子程序多次数后,您仍将获得多项式时间运行时间复杂度。
例如,如果运行子程序,其中 n 2 复杂度 n 3 次数算法将具有 n 5 运行时复杂度,这仍然是一个多项式时间算法。
答案 2 :(得分:0)
f(a)= 2 ^ a
g(b)= sum = 0; for(i = 1..b)sum = sum + i
f(a)是O(n)
g(b)是O(n)
g(f(a))是指数