Xấp xỉ Bakhshali là phương pháp tính căn bậc hai của số không phải bình phương hoàn hảo. Ôn lại các khái niệm liên quan để dễ hiểu.
Căn bậc hai của số x là số thỏa mãn y² = x.
Bình phương hoàn hảo là số có căn bậc hai nguyên. Ví dụ 16 là bình phương hoàn hảo vì căn là 4 và 4.
Có nhiều phương pháp toán học tìm căn bậc hai. Hướng dẫn này giới thiệu xấp xỉ Bakhshali.
Đây là phương pháp tìm căn xấp xỉ của một số. Nó tương đương với hai bước đầu của phương pháp Babylon.
Cách thức hoạt động:
Tìm căn bậc hai của số s. Các bước và tính toán:
- Tìm bình phương hoàn hảo gần nhất của s, tức là n².
- Tìm hiệu của số và bình phương hoàn hảo gần nhất: d = s - n².
- Tính P = d / (2n).
- Tính A = n + P.
- Giá trị xấp xỉ căn bậc hai của s là (A - P² / 2A).
Ví dụ mã nguồn
#include <iostream>
using namespace std;
int main() {
float s = 12.3412;
int perfectSquare = 0;
int n = 0;
for (int i = static_cast<int>(s); i > 0; i--) {
for (int j = 1; j < i; j++) {
if (j * j == i) {
perfectSquare = i;
n = j;
break;
}
}
if (perfectSquare > 0)
break;
}
float d = s - perfectSquare;
float P = d / (2.0 * n);
float A = n + P;
float rootOfs = A - ((P * P) / (2.0 * A));
cout << "The square root of " << s << " = " << rootOfs;
return 0;
}
Kết quả đầu ra
The square root of 12.3412 = 3.51327
Căn bậc hai xấp xỉ này rất gần căn thực tế là 3.51300441. Vì vậy phương pháp này khá tốt để tìm căn xấp xỉ. Đúng đến vài chữ số thập phân nên có thể dùng cho số thực.