嵌套多项式时间函数

时间:2013-04-26 17:21:02

标签: algorithm complexity-theory polynomial-math

如果我在多项式时间子程序中运行多项式次数,那么在指数时间内完成这种方式的一些例子是什么?

“表明对多项式时间子程序的多项式调用次数可以 导致指数时间算法。“ - HW的问题

3 个答案:

答案 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))是指数