求sqrt根号函数算法实现代码,最好是C的哦,该如何处理

求sqrt根号函数算法实现代码,最好是C的哦
求sqrt根号函数算法实现代码,最好是C的哦

------解决方案--------------------
参考数值计算或数值逼近
------解决方案--------------------
http://greatsorcerer.go2.icpcn.com/info/fastsqrt.html
------解决方案--------------------
这个函数在一些CPU中就是一两条指令(SSE就是,有直接求根号倒数的指令,再乘一下底数就行了)。

算法,无论是硬件的还是软件的,大部分都是基于牛顿迭代公式。

对函数
f(x) = x^2 - a
求零点(即方程f(x) = 0的根),就是开方了。而由牛顿迭代公式
x ' = x - f(x)/f '(x)

x ' = (x + a/x) / 2
可由任意正的初始值迅速收敛到根号a。
当然实际使用的公式是更优化过的,避免了除法的使用,并精心地取初始值。mmmcd给出的文章中介绍的QUAKE3中的算法就是这样。
------解决方案--------------------
mmmcd所给文章后面参考文献中的Fast Inverse Square Root,特别地值得一看,实际上比中文的这篇文章要写得清楚得多。
------解决方案--------------------
迭代法.........