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
Performance 巴比伦法的时间复杂度_Performance_Algorithm_Big O_Time Complexity - Fatal编程技术网

Performance 巴比伦法的时间复杂度

Performance 巴比伦法的时间复杂度,performance,algorithm,big-o,time-complexity,Performance,Algorithm,Big O,Time Complexity,巴比伦法的时间复杂度是多少?是log(n)吗,其中n是我们要求平方根的数?如果是,为什么会这样 我们可以看到,步骤k的相对误差,满足方程ek1时,f(1)=2和f(k+1)=2*f(k)+1 通过归纳,f(k)=3*2k-1-1 让n作为我们算法的输入,当我们确定总误差小于常数m时,算法停止 步骤k的误差Ek满足方程Ek=Ek*n 因此,一旦ek*nn/m时会发生这种情况,这相当于f(k)>log2(n/m) 当2k-1>(log2(n/m)-1)/3时,该方程成立,当k>log2((log2(

巴比伦法的时间复杂度是多少?是log(n)吗,其中n是我们要求平方根的数?如果是,为什么会这样

我们可以看到,步骤k的相对误差,满足方程ek<2-f(k),其中f(k)递归定义如下:

当n>1时,f(1)=2和f(k+1)=2*f(k)+1

通过归纳,f(k)=3*2k-1-1

让n作为我们算法的输入,当我们确定总误差小于常数m时,算法停止

步骤k的误差Ek满足方程Ek=Ek*n

因此,一旦ek*n 当2f(k)>n/m时会发生这种情况,这相当于f(k)>log2(n/m)

当2k-1>(log2(n/m)-1)/3时,该方程成立,当k>log2((log2(n/m)-1)/3)+1时,该方程成立

因此,算法将终止于O(log(log(n/m)+1))步

使用可以显示log(log(x)+c))=O(log(log(x))

因此巴比伦的方法需要O(对数(对数(n/m))步

我猜步骤应该是O(对数2(对数到基E0(m/n)) 其中E0是第0次迭代时的误差,即我们选择种子值时的误差 m是ans中允许的错误,n是算法的输入。
关于错误递归函数的完整解释,你可以参考这一点:

我觉得这个源可能就是你想要的,它所说的,这就是像巴比伦法这样的算法所基于的。@kurtzbot在历史上,说巴比伦法是基于牛顿的方法是很有趣的。哈哈,对不起,我不是故意要使用混淆。我记得我学过这个,不得不用谷歌搜索来刷新我的记忆。如果我错了,请纠正我。除非你的意思是因为名字而有趣,而不是数学上的。在这种情况下,我同意:P@kurtzbot我想他的意思是这很有趣,因为,大概巴比伦的方法比牛顿的方法早…几千年?。..多年。