Algorithm T(0)=1,T(1)=0,T(n)=2*T(n-2)的递推关系
我试图找到上述表达式的递归关系 我推断: 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)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?我编写了一个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)也是真的,等等,但是基本情况的步骤是不同的是。