Căn bậc hai của x là y nếu và chỉ nếu y>= 0 và y*y = x
Cách phổ biến nhất là sử dụng phương pháp Newton’s sử dụng phép đoán y liên tục, với bất kỳ giá trị y nào cho giá bằng với căn bậc hai của x, chúng ta có thể trình diễn một số guess tốt hơn bằng trung bình cộng của y và x.
Chúng ta có thể tính căn bậc hai của 2 như sau:
Cứ tiếp tục tiến trình này chúng ta sẽ đạt được sắp xỉ tốt hơn để tính căn bậc hai của một số.
Chúng ta có thể viết code cho phương thức này như sau:
double sqrtIter (double guess, doule x){
if(goodEnough(guess, x)) return guess;
return sqrtIter( improve(guess, x) x));
}
double guess (double guess, double x){
return average(guess, x);
}
(define (average x y) double average(double x, double y){
return (x+y)/2;
}
bool goodEnough(double guess, double x){
return Math.Abs(guess*guess-x ) < 0.001;
}
double sqrt (double x){
return sqrtIter(1.0, x);
}
GIỜ chúng ta co thể tính toán được căn bậc hai của một số x bất kỳ như sau
sqrt(9) , sqrt(12) …..