การประมาณค่า Bakhshali เป็นวิธีการคำนวณรากที่สองของตัวเลขที่ไม่ใช่กำลังสองสมบูรณ์ มาทบทวนคำศัพท์ที่เกี่ยวข้องเพื่อเข้าใจง่ายขึ้น
รากที่สองของตัวเลข x คือตัวเลขที่ทำให้เงื่อนไขต่อไปนี้เป็นจริง y2 = x
กำลังสองสมบูรณ์ (Perfect Square) คือตัวเลขที่รากที่สองเป็นจำนวนเต็ม เช่น 16 เป็นกำลังสองสมบูรณ์เพราะรากคือ 4 และ 4
มีหลายวิธีทางคณิตศาสตร์ที่กำหนดไว้เพื่อหารากที่สองของตัวเลข ในบทช่วยสอนนี้เราจะเรียนรู้การประมาณค่า Bakhshali เพื่อหารากที่สองของตัวเลข
เป็นวิธีหาค่ารากประมาณของตัวเลข เทียบเท่ากับสองขั้นตอนแรกของวิธี Babylonian
การทำงาน −
การประมาณค่า Bakhshali ทำงานดังนี้
เราต้องการหารากที่สองของตัวเลข s ขั้นตอนและคำนวณที่ต้องทำด้านล่างนี้
- หากำลังสองสมบูรณ์ที่ใกล้ที่สุดของตัวเลข s คือ n2
- หาความต่างของตัวเลขและกำลังสองสมบูรณ์ที่ใกล้ที่สุด คือ d = s - n2
- คำนวณ P = d/(2n)
- คำนวณ A = n + P
- ค่าประมาณของรากที่สองของ s จะเป็น (A - P2 / 2A)
ตัวอย่าง
#include <iostream>
using namespace std;
int main(){
float s = 12.3412;
int perfectSqaure = 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){
perfectSqaure = i;
n = j;
break;
}
}
if (perfectSqaure > 0)
break;
}
float d = s - perfectSqaure;
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;
}
ผลลัพธ์
The square root of 12.3412 = 3.51327
ค่ารากที่สองประมาณนี้ใกล้เคียงกับค่าจริงที่คือ 3.51300441 ดังนั้นวิธีนี้ดีพอสำหรับการหารากที่สองประมาณของตัวเลขที่กำหนด ถูกต้องถึงหลายตำแหน่ง จึงสามารถใช้หาค่ารากของค่าทศนิยมได้