Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Bakhshali การประมาณสำหรับการคำนวณรากที่สองในโปรแกรม C


การประมาณบัคชาลี เป็นวิธีคำนวณรากที่สองของจำนวนที่ไม่ใช่กำลังสองสมบูรณ์ ตอนนี้ ให้คำศัพท์ที่เกี่ยวข้องกับแปรงเพื่อให้เข้าใจแนวคิดได้ง่าย

รากที่สองของจำนวน x คือตัวเลขที่ตรงตามเงื่อนไขต่อไปนี้ y 2 =x.

Perfect Square คือจำนวนที่มีรากที่สองคือ w ตัวอย่างเช่น 16 เป็นกำลังสองสมบูรณ์เนื่องจากรากของมันคือ 4 และ 4

มีหลายวิธีที่กำหนดไว้ทางคณิตศาสตร์เพื่อค้นหารากที่สองของตัวเลข ในบทช่วยสอนนี้ เราจะมาเรียนรู้เกี่ยวกับการประมาณ Bakhshali เพื่อหารากที่สองของตัวเลข

เป็นวิธีการหารากโดยประมาณของตัวเลข เทียบเท่ากับ 2 ขั้นตอนแรกของวิธีบาบิโลน

ทำงาน -

การประมาณบัคชาลีทำงานในลักษณะดังต่อไปนี้

เราต้องหารากที่สองของตัวเลข s . ด้านล่างนี้คือขั้นตอนและการคำนวณที่ต้องทำเพื่อหาค่าประมาณนี้

  • หากำลังสองสมบูรณ์ที่ใกล้ที่สุดของตัวเลข s นั่นคือ n 2 .

  • ค้นหาผลต่างของตัวเลขและกำลังสองสมบูรณ์ที่ใกล้ที่สุด เช่น d =s - n 2 .

  • คำนวณ P =d/(2n)

  • คำนวณ A =n + P.

  • ค่าโดยประมาณของรากที่สองของ s จะเป็น (A - P 2 / 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 ดังนั้น วิธีนี้จึงค่อนข้างดีสำหรับการค้นหาสแควร์รูทโดยประมาณของจำนวนที่ระบุ วิธีนี้ถูกต้องเพียงไม่กี่แห่ง เราจึงสามารถใช้เพื่อค้นหารากของค่าทศนิยม