Java 具有时间复杂性的递归方程

Java 具有时间复杂性的递归方程,java,algorithm,time-complexity,recurrence,Java,Algorithm,Time Complexity,Recurrence,我真的在努力解决这个递归问题。有谁能帮我通过闭式公式,在基本条件T(1)=0的情况下,解出递推T(n)=5T(n/5)+5?给出了n=5^m,整数m=log5n.解决这个问题的一种非建设性方法:稍微看一下公式一,可以猜测T(5m)=(5m+1-5)/4。这可以通过归纳法来表示: 这对于m=0:T(1)=0是正确的 假设它对m是正确的,我们对m+1显示它:T(5m+1)=T(5*5m)=5T(5m)+5=5*((5m+1-5)/4)+5=(5m+2-25)/4+5=(5m+2-5)/4 因此,它对

我真的在努力解决这个递归问题。有谁能帮我通过闭式公式,在基本条件T(1)=0的情况下,解出递推T(n)=5T(n/5)+5?给出了n=5^m,整数m=log5n.

解决这个问题的一种非建设性方法:稍微看一下公式一,可以猜测T(5m)=(5m+1-5)/4。这可以通过归纳法来表示:

这对于m=0:T(1)=0是正确的

假设它对m是正确的,我们对m+1显示它:T(5m+1)=T(5*5m)=5T(5m)+5=5*((5m+1-5)/4)+5=(5m+2-25)/4+5=(5m+2-5)/4


因此,它对所有m都是正确的。

对于n>=0,计算T(5n)就足够了。对于x的所有其他值,T(x)将等于T(y),其中y是小于x的5的最大幂,因为计算是相同的。(我假设,当你写n/5时,你指的是整数除法,即下限(n/5)。)

然后:

T(50)=0
T(51)=5*0+5=5
T(52)=5*5+5=52+51
T(53)=5*(5*5+5)+5=53+52+51
... 这导致:
T(5n)=5n+5n-1+…+52+51

使用高中代数公式(几何级数的和),它是

T(5n)=(5n+1-5)/4


如果您考虑时间复杂性,请注意T(x)将始终小于或等于5x/4。由于我们在用O表示法表示事物时不担心常数因子,这本质上意味着t(x)=O(x)。

Nice,一种精确而有效的数学归纳法。你可能想在一个以数学为中心的Stackexchange网站上问这个问题。好吧,我不理解“搁置太广泛”。解释是,“可能的答案太多,或者好的答案对于这种格式来说太长”。呵呵???在我看来,有一个正确的答案,而且不需要很长时间。也许它应该因为其他原因关闭,但“太宽”?