C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

Cプログラムで平方根を計算するためのBakhshali近似


バクシャリ近似 は、完全な平方ではない数値の平方根を計算する方法です。それでは、ブラシ関連の用語で概念を簡単に理解しましょう。

数xの平方根は、次の条件を満たす数です。 y 2 =x。

パーフェクトスクエアは、平方根がwである数です。たとえば、16はその根が4と4であるため、完全な正方形です。

数値の平方根を見つけるために数学的に定義された複数の方法があります。このチュートリアルでは、数値の平方根を見つけるためのBakhshali近似について学習します。

これは、数の近似根を見つける方法です。これは、バビロニア法の最初の2つのステップに相当します。

動作中-

Bakhshali近似は、次のように機能します。

数の平方根を見つける必要があります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です。したがって、この方法は、与えられた数のおおよその平方根を見つけるのに非常に適しています。いくつかの場所までこの方法は正しいので、浮動小数点値の根を見つけるために使用できます。


  1. C++でのピラミッドのボリュームのプログラム

    ピラミッドのベースのタイプに応じて側面が与えられると、タスクはピラミッドの体積を計算することです。 ピラミッドは、ピラミッドの鋭いエッジを形成する共通点で外面が三角形で交わる3D図形です。ピラミッドの体積は、持つベースのタイプによって異なります。 -のように、ピラミッドを構成できるベースにはさまざまな種類があります。 三角形 -ピラミッドの体積よりも、ピラミッドの底辺が三角形になることを意味します 式-:( 1/6)* a * b * h 正方形 -ピラミッドの体積よりも、ピラミッドの底面が正方形になることを意味します 式-:(1/3)*(b ^ 2)* h 五角形 -ピラミッド

  2. QuickSort用のC++プログラム?

    クイックソートは、比較を使用してソートされていないリスト(配列)をソートするソート手法です。クイックソートは、パーティション交換ソートとも呼ばれます。 等しいソート項目の相対的な順序が保持されないため、安定したソートではありません。クイックソートは配列を操作できるため、ソートを実行するために少量の追加メモリが必要です。常に最悪の場合のパーティションを選択するわけではないことを除いて、選択ソートと非常によく似ています。したがって、選択ソートのより適切な形式と見なすことができます。 QuickSortは、最も効率的な並べ替えアルゴリズムの1つであり、配列を小さい配列に分割することに基づいていま