巴比伦方法求平方根
查找平方根的巴比伦方法基于一种数值方法,该方法基于牛顿-拉夫森方法来求解非线性方程。
这个想法很简单,从x的任意值开始,并且y为1,我们可以通过找到x和y的平均值来简单地得到根的下一个近似值。然后,y值将更新为数字/x。
输入输出
Input: A number: 65 Output: The square root of 65 is: 8.06226
算法
sqRoot(number)
输入:实数。
输出:给定数字的平方根。
Begin
x := number
y := 1
precision := 0.000001
while relative error of x and y > precision, do
x := (x+y) / 2
y := number / x
done
return x
End示例
#include<iostream>
#include<cmath>
using namespace std;
float sqRoot(float number) {
float x = number, y = 1; //initial guess as number and 1
float precision = 0.000001; //the result is correct upto 0.000001
while(abs(x - y)/abs(x) > precision) {
x = (x + y)/2;
y = number/x;
}
return x;
}
int main() {
int n;
cout << "Enter Number to find square root: "; cin >> n;
cout << "The square root of " << n <<" is: " << sqRoot(n);
}输出结果
Enter Number to find square root: 65 The square root of 65 is: 8.06226