gpt4 book ai didi

algorithm - 给定程序的递归关系

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:04:55 24 4
gpt4 key购买 nike

考虑以下代码:

def f(int A):
if A<256 :
return A^(1/2)
B = A^(1/2)
C = B^(1/2)
return (f(B)+f(C))mod 16

令 T(n) 表示该算法的时间复杂度。时间复杂度是:

a) T(n) = T(n/2) + T(n/4) + O(1)
b) T(n) = T(n^(1/2)) + T(n^(1/4)) +O(1)

根据我的说法,答案应该是 (b),但给出的答案是 (a)。为什么这是答案,我哪里出错了?

最佳答案

我们通常谈论算法的复杂性与它的输入大小(即它的二进制表示的长度)有关,而不是输入的实际数值.

因此在这种情况下,输入大小为 n = log(A)BC 的二进制表示为 n/2 = log(A)/2 = log(A^(1/2)) = log(B)n/4 = log(C)。这给了我们 (a) 中的关系。

关于algorithm - 给定程序的递归关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26629688/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com