Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm T(0)=1,T(1)=0,T(n)=2*T(n-2)的递推关系_Algorithm_Recursion_Recurrence - Fatal编程技术网

Algorithm T(0)=1,T(1)=0,T(n)=2*T(n-2)的递推关系

Algorithm T(0)=1,T(1)=0,T(n)=2*T(n-2)的递推关系,algorithm,recursion,recurrence,Algorithm,Recursion,Recurrence,我试图找到上述表达式的递归关系 我推断: T(n)=C*T(n-2) T(n-2)=2C*T(n-4) T(n-4)=3C*T(n-6) T(n)=k/2C*T(n-k) 我被困在这里了。这是正确的方法吗?什么是简化的递归关系而不在简化方程中包含T?我编写了一个python程序,发现了这种关系: def rec(num): if num == 0: return 1 elif num == 1: return 0 else:

我试图找到上述表达式的递归关系

我推断:

T(n)=C*T(n-2)

T(n-2)=2C*T(n-4)

T(n-4)=3C*T(n-6)

T(n)=k/2C*T(n-k)


我被困在这里了。这是正确的方法吗?什么是简化的递归关系而不在简化方程中包含T?

我编写了一个python程序,发现了这种关系:

def rec(num):
    if num == 0:
        return 1
    elif num == 1:
        return 0
    else:
        return 2 * rec(num - 2)
经过几次测试,我发现了这个规律:

指数2、3、4、5、6、7、8

结果2,0,4,0,8,0,16


因此,当n=2k时,结果可能是2^(n/2)&&0当n=2k+1(k属于Z)

我编写了一个python程序,发现了以下关系:

def rec(num):
    if num == 0:
        return 1
    elif num == 1:
        return 0
    else:
        return 2 * rec(num - 2)
经过几次测试,我发现了这个规律:

指数2、3、4、5、6、7、8

结果2,0,4,0,8,0,16


因此,当n=2k时,结果可能是2^(n/2)&&0当n=2k+1(k属于Z)

让我们在扩展此函数时观察行为
m
次:

T(n) = 2^2 * T(n - 2*2)
     = 2^3 * T(n - 2*3)
     = 2^4 * T(n - 2*4)
     = ...
     = 2^m * T(n - 2m)
n
为:

  • 偶数:
    n-2m
    最终等于零,这意味着最大值为
    m=n/2
    ,并且
    T(n)=2^(n/2)
  • 奇数:“最终等于1,这意味着
    T(n)=2^(…)*T(1)=0
如果我们想用一个表达式来写:

T(n) = (1 - n + floor[n/2]) * 2^(n/2)

让我们在扩展此函数时观察行为
m
次:

T(n) = 2^2 * T(n - 2*2)
     = 2^3 * T(n - 2*3)
     = 2^4 * T(n - 2*4)
     = ...
     = 2^m * T(n - 2m)
n
为:

  • 偶数:
    n-2m
    最终等于零,这意味着最大值为
    m=n/2
    ,并且
    T(n)=2^(n/2)
  • 奇数:“最终等于1,这意味着
    T(n)=2^(…)*T(1)=0
如果我们想用一个表达式来写:

T(n) = (1 - n + floor[n/2]) * 2^(n/2)

看起来不对劲-当你走下每一步时,
2*
会去哪里?(提示。这可能是指数型的)这看起来有两种情况:2^(n/2)表示偶数n,0表示奇数。可能有一种方法可以在一个表达式中使用floor运算符来编写它。doesn't look not right-当你走下每一步时,
2*
会去哪里?(提示。这可能是指数型的)这看起来有两种情况:2^(n/2)表示偶数n,0表示奇数。可能有一种方法可以用一个带floor运算符的表达式来表示,我相信这是2^(n/2),而不是2^n。e、 我认为那是2,而不是2。e、 g.4=2^(4/2)这是有道理的!所以有两个结果的原因是因为T(0)=1和T(1)=0。如果我们要用归纳法证明这一点,我必须证明偶数和奇数两种情况吗?迭代步骤对这两种情况都是一样的-只要证明如果对T(n)为真,那么对T(n-2)也为真,等等,但是基本情况步骤将不同是的。这是有意义的!所以有两个结果的原因是因为T(0)=1和T(1)=0。如果我们要用归纳法证明这一点,我必须证明偶数和奇数两种情况吗?迭代步骤对这两种情况都是一样的-只要证明如果对T(n)是真的,那么对T(n-2)也是真的,等等,但是基本情况的步骤是不同的是。