Algorithm 算法:CLRS中的递归关系
我最近试图从CLR中解出一些递归关系,在解这些方程时,我注意到了一个奇怪的细微差别。我不知道你们中是否有人注意到这一点,也不知道这是否是冠军们可以提供更多信息的理论。(我也有CS学位,但没有理论!)。在求解主定理的递推时: T(n)=a T(n/b)+f(n) 我注意到推理是这样的: i) 展开a元递归树,我们得到一个n个叶节点,其中每个节点完成的功为Θ(1),所有叶节点的功为Θ(nlogba) ii)对于所有非叶节点,g(n)=∑aj f(b/nj),其中j从0到楼层(logbn-1)求和,其中树的高度为logbn iii)现在有一个信念的飞跃:对于某些ε>0的情况,提出一个f(n)真的有界于O(nlogba-ε)的观点 iv)现在用f(n)解g(n),用g(n)解T(n)。正如第一步中提到的,T(n)实际上是Θ(nlogba)+g(n),所以一旦你有了一些g(n)和另一个术语,就可以得到T(n) 这种方法的问题是,这里的推理是这样的:看,如果我们假设右手边是X,那么我们把它插入方程来解左手边。这不是有点奇怪吗?不是这样的吗: 给定值:X2=8X-16 让我们假设X=4,把它放到RHS中,解出X,酷,看,我们得到了4!!! 这确实很有趣,但你真的解决了这个问题吗?为什么你不猜测X是一个无理数,为什么不是一个虚数Algorithm 算法:CLRS中的递归关系,algorithm,Algorithm,我最近试图从CLR中解出一些递归关系,在解这些方程时,我注意到了一个奇怪的细微差别。我不知道你们中是否有人注意到这一点,也不知道这是否是冠军们可以提供更多信息的理论。(我也有CS学位,但没有理论!)。在求解主定理的递推时: T(n)=a T(n/b)+f(n) 我注意到推理是这样的: i) 展开a元递归树,我们得到一个n个叶节点,其中每个节点完成的功为Θ(1),所有叶节点的功为Θ(nlogba) ii)对于所有非叶节点,g(n)=∑aj f(b/nj),其中j从0到楼层(logbn-1)求和,其
此外,我想知道这种推理存在于数学的哪个分支,因为我怀疑它是从那个领域来到CS的。有什么想法吗?我知道计算机科学中几乎99%的数学只是“在某些假设下的一些更奇特的论证形式”(因为计算机科学专业的学生不解决传统意义上的方程),但这种方法似乎非常独特。有什么想法吗?有趣的信仰飞跃步骤是数学归纳的捷径。基本上是这样的:
- 检查假设是否适用于某些基本情况(例如,只有一个非叶节点)
- 假设
th非基本情况为真,则确保n
st非基本情况为真n+1