gpt4 book ai didi

math - 当 n > 0 时,n 可以 floor(sqrt(n)) - 1 多少次?

转载 作者:行者123 更新时间:2023-12-04 00:52:58 25 4
gpt4 key购买 nike

完整的问题是

假设我们有一个函数

void foo(int n){
int i = n;
while(i > 0){
//do an O(n) operation
//do some O(1) operations
i = sqrt(i) - 1;
}
}

我只需要找到渐近边界,但在我弄清楚循环实际运行了多少次之前我无法做到这一点。我猜这是另一个涉及平方根的求和,但我不确定如何开始。

最佳答案

您想知道循环将执行多少次。

如果 i < 2,则循环最多执行两次。

因此如果 i < 4 循环将最多执行 3 次。

因此如果 i < 16 循环将最多执行 4 次。

因此如果 i < 256 循环将最多执行 5 次。

...

等等

你看到如果 i < 2^(2^m),那么循环最多执行 (m+2) 次。

这意味着它会执行的次数的顺序是log(log(n)),

因为 i 从 n 开始。

因此整体复杂度为O(n*log(log(n))

(如果每次迭代中的 O(1) 操作数是常数。)

关于math - 当 n > 0 时,n 可以 floor(sqrt(n)) - 1 多少次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9288565/

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