程序如何计算平方根?
How do programs calculate square roots?
我知道这是一个很好的数学问题,但是程序如何求平方根?根据我的阅读,这通常是设备 cpu 固有的东西,但我需要能够做到这一点,可能是在 c++ 中(尽管那是无关紧要的)。
我之所以需要具体了解这一点,是因为我有一个内联网服务器,而且我正开始使用众包。为此,我将从找到某个平方根的很多数字开始,比如 sqrt(17) 之类的。
这是 python 提供的范围,只是 math.sqrt()
我要创建一个可以与其他相同客户端一起工作的客户端,因此我需要完全控制数学过程。哎呀,这个问题可能 没有 答案,但无论如何还是感谢你的帮助。
[编辑]
我让它工作了,这是它的 'final' 产品:(非常感谢 @djhaskin987)
def square_root(number):
old_guess = 1
guess = 2
guesssquared = 0
while round(guesssquared, 10) != round(number, 10):
old_guess = guess
guess = ((number / guess) + guess ) / 2
print(guess)
guesssquared = guess * guess
return guess
solution = square_root(7) #finds square root of 7
print(solution)
计算机使用人们实际使用的方法since babylonian times:
def square_root(number):
old_guess = 1
guess = 2
while old_guess != guess:
old_guess = guess
guess = ((number / guess) + guess ) / 2
return guess
x86 在注册表中有很多 sqrt,以 FSQRT for float 开头。
一般来说,如果你的功能太复杂或者没有实现,就是C^\infty ("infinitely" differentiable), you can expand it into a polynom via Taylor expansion。这在 HPC 中极为常见。
我知道这是一个很好的数学问题,但是程序如何求平方根?根据我的阅读,这通常是设备 cpu 固有的东西,但我需要能够做到这一点,可能是在 c++ 中(尽管那是无关紧要的)。
我之所以需要具体了解这一点,是因为我有一个内联网服务器,而且我正开始使用众包。为此,我将从找到某个平方根的很多数字开始,比如 sqrt(17) 之类的。
这是 python 提供的范围,只是 math.sqrt()
我要创建一个可以与其他相同客户端一起工作的客户端,因此我需要完全控制数学过程。哎呀,这个问题可能 没有 答案,但无论如何还是感谢你的帮助。
[编辑] 我让它工作了,这是它的 'final' 产品:(非常感谢 @djhaskin987)
def square_root(number):
old_guess = 1
guess = 2
guesssquared = 0
while round(guesssquared, 10) != round(number, 10):
old_guess = guess
guess = ((number / guess) + guess ) / 2
print(guess)
guesssquared = guess * guess
return guess
solution = square_root(7) #finds square root of 7
print(solution)
计算机使用人们实际使用的方法since babylonian times:
def square_root(number):
old_guess = 1
guess = 2
while old_guess != guess:
old_guess = guess
guess = ((number / guess) + guess ) / 2
return guess
x86 在注册表中有很多 sqrt,以 FSQRT for float 开头。
一般来说,如果你的功能太复杂或者没有实现,就是C^\infty ("infinitely" differentiable), you can expand it into a polynom via Taylor expansion。这在 HPC 中极为常见。