1
function What(n,a,total)
if n=0
return total
elseif n is even and n>0
return What(n/2, a+1, total)
elseif n is odd
return What((n-1)/2, a+1, total + 2^n)
endif
end What
我不知道如何找到此算法的封闭形式。这不是一个家庭作业问题,只是为我即将到来的决赛学习以前的考试。根据给定的标记/空间,它应该是一个小/简单的解决方案。从多种参数的算法中查找封闭表格
假设总开始于0,
我可以看到,该算法返回图2,如果n为2的幂;如果n是偶数,则 返回2 ^(n/2)+2;如果n是奇数,则2^n + 2。对于第一个elseif我得到了T(n/2)+ 1时间,对于第二个elseif我得到了T((n-1)/ 2)+ 2^n + 1(?)时间。总体而言,我不知道如何去寻找这里的封闭表格/使用重复的替代。
您是否试图为算法的*返回值*或其*时间复杂度*找到一个封闭的表单?目前尚不清楚。 – user2357112
@ user2357112我给出了运行时间的答案。我不认为我有一个封闭的形式的数学:-) –