Math 初始条件为0时的归纳证明 归纳法的证明| |迭代法

Math 初始条件为0时的归纳证明 归纳法的证明| |迭代法,math,discrete-mathematics,induction,Math,Discrete Mathematics,Induction,嗨,我正在研究一个离散数学问题,我不知道该怎么办: T(n)=3+T(n/2),T(0)=0 我已经试过了插入法和感应法,但我似乎无法解决它 我的问题是,当我试图建立一个通用公式时: T(n) = 3 + T(n/2) => T(n/2) => 3 + T(n^2/2^2) T(n) = 3 + (3 + T(n^2/2^2)) T(n) = 3 + 3 + T(n^2/2^2) => 3 + T(n^3/2^3) T(n) = 3 + 3 + (3 + T(n^3/2^3))

嗨,我正在研究一个离散数学问题,我不知道该怎么办:

T(n)=3+T(n/2),T(0)=0

我已经试过了插入法和感应法,但我似乎无法解决它

我的问题是,当我试图建立一个通用公式时:

T(n) = 3 + T(n/2) => T(n/2) => 3 + T(n^2/2^2)
T(n) = 3 + (3 + T(n^2/2^2))
T(n) = 3 + 3 + T(n^2/2^2) => 3 + T(n^3/2^3)
T(n) = 3 + 3 + (3 + T(n^3/2^3))
T(n) = 3 + 3 + 3 + T(n^3/2^3)
所以,
g(i)=3i+T(n^i/2^i)

因为,
T(0)=0
。我需要使
n^I/2^I
等于
0

n^i/2^i = 0
我被卡住了。我看了答案键,答案是:

T(n) = 3(⌊log2(n)⌋ + 1)
谁能给我指一下正确的方向吗

T(n) = 3 + T(n/2)
T(0) = 0
我们可以写出一些值并猜测一个公式:

n    T(n)
0    0
1    3 + T(1/2) = 3 + T(0) = 3 + 0 = 3
2    3 + T(2/2) = 3 + T(1) = 3 + 3 = 6
4    3 + T(4/2) = 3 + T(2) = 3 + 6 = 9
...
2^k  3 + 3log(k)
我们是如何得出这个猜测的?我们注意到,n每增加一倍,T(n)的值就增加三倍。为了计算倍增的数量,可以使用自然对数,因为对数给出了基数必须提高到的指数(重复倍增是2的幂的乘积)

我认为你在这里的困难-这是完全正确的-是猜测不适用于初始条件。事实上,零的对数甚至没有定义。那么,这里发生了什么?实际上,问题的关键是当我们计算T(1)时,我们说1/2=0。也就是说,我们含蓄地知道要取整。像对数这样的函数是实数上的函数;舍入是我们在离散环境中存在的一种人工制品。因此,递归关系的真正完整解实际上是一个分段函数:

        / 0, if n = 0
T(n) = -
        \ 3*floor(log2(n)) + 3, if n > 0
那么,从真正意义上讲,钥匙中的答案是错误的,或者至少不是完全完整的。它给出的公式不适用于n=0