Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 求n的立方根的复杂性_Algorithm_Big O_Time Complexity - Fatal编程技术网

Algorithm 求n的立方根的复杂性

Algorithm 求n的立方根的复杂性,algorithm,big-o,time-complexity,Algorithm,Big O,Time Complexity,自然数n的立方根定义为最大自然数m,使得m^3≤N计算n的立方根(n用二进制表示)的复杂性为 (A) O(n)但不是O(n^0.5) (B) O(n^0.5),但对于任何常数k>0,不是O((logn)^k) (C) O((logn)^k)表示某些常数k>0,而不是O((logn)^m)表示任何常数m>0 (D) O((对数n)^k)对于某些常数k>0.5,但不是O((对数n)^0.5) 我无法解决上一年的问题。有人能帮我理解这个问题吗?要回答这个问题,你需要找到求n的整数立方根m的复杂度的上界

自然数n的立方根定义为最大自然数m,使得m^3≤N计算n的立方根(n用二进制表示)的复杂性为

(A) O(n)但不是O(n^0.5)

(B) O(n^0.5),但对于任何常数k>0,不是O((logn)^k)

(C) O((logn)^k)表示某些常数k>0,而不是O((logn)^m)表示任何常数m>0

(D) O((对数n)^k)对于某些常数k>0.5,但不是O((对数n)^0.5)


我无法解决上一年的问题。有人能帮我理解这个问题吗?

要回答这个问题,你需要找到求n的整数立方根m的复杂度的上界和下界。至少有一个上界是微不足道的,并且排除了答案A和B:m可以使用二进制搜索在O(logn)时间内找到


还要注意,输入大小是O(logn),因为在二进制表示法中表示任意n所需的最小位数与logn成正比。因为必须处理数字的所有位才能解决问题,θ(logn)是解决问题时间的下限,因此问题无法在时间O((logn)^w)内解决[其中w是某个常数>0],因为这不是O(logn)。因此,答案C适用。

这个问题似乎离题了,因为它是关于计算机科学的,而不是实用编程。试试cs.stackexchange.com。这是否取决于所使用的算法(此处未指定)呢?我相信这个问题值得在cstheory.stackexchange.migrate将其迁移到cs-stackexchange。我没有选择Migate如果n未指定会有什么不同notation@avi,问题是n是二进制的,因此一元是不相关的。然而,如果n用一元表示,那么读取输入将花费θ(n)和处理最多O(logn),所以总时间是θ(n),答案是A。为什么二进制使它复杂@jwpat7@avi,也许最近编辑的答案更清楚