标签: recursion big-o
function rec (n:integer); begin if n<=1 then return (1) else return(rec(n-1)+rec(n-1)+rec(n-1)) end
我的复发如下,我很难将这种复发表达为n的函数。 我认为等式是一些类似的东西; T(n)= 3T(n-1)+2。
答案 0 :(得分:0)
考虑这个函数的稍微更通用的版本:
多次将其重新替换为自身,以发现出现的模式:
重复m次的过程。
m
我们什么时候停止?此重复的停止条件为n <= 1,因此:
n <= 1
因此T的表达式变为:
T
用数字代替,a = 3, b = 1, c = 2:
a = 3, b = 1, c = 2
请注意,我们忽略了m最大值的任何舍入,因为整数舍入误差的最大幅度为0.5,因此只会给出一个常数因子差异。
0.5