开方算法
开方算法依据公式
开平方公式
(a+b)²-a²=b(2a+b)
开立方公式
(a+b)³-a³=b(3a²+3ab+b²)
1.开方作法本原图
2.二项式定理
1.竖式开方法
2.迭代求根法
3.二分法
牛顿迭代法
迭代公式: t = (t+x/t)/2.0
1 | double sqrt(double x) { |
牛顿迭代公式: 称为r的n+1次近似值.
1 | double sqrt(double x) { |
double sqrt2(double x) {
double eps = 1e-12;
double t = x;
double lastt;
do {
lastt = t;
t = (t + x / t) / 2.0;
} while (abs(t-lastt) > eps);
return t;
}
欧几里德算法又称辗转相除法,是指用于计算两个正整数a,b的最大公约数。应用领域有数学和计算机两个方面。
计算公式gcd(a,b) = gcd(b,a mod b)。
1 | int gcd(int a,int b) |
Stein算法由J. Stein于1961年提出,这个方法也是计算两个数的最大公约数。和欧几里德算法不同的是,Stein算法只有整数的移位和加减法,这对于程序设计者是一个福音。
gcd(a,a) = a,也就是一个数和他自身的公约数是其自身
gcd(ka,kb) = k gcd(a,b),也就是最大公约数运算和倍乘运算可以交换,特殊的,当k=2时,说明两个偶数的最大公约数必然能被2整除