C++ キューブ ルート

Ammar Ali 2023年10月12日
  1. C++ で cbrt() 関数を使用したキューブ ルート
  2. C++ で pow() 関数を使用した立方根
C++ キューブ ルート

このチュートリアルでは、C++ の cmath ライブラリの pow() または cbrt() 関数を使用して数値の立方根を計算する方法について説明します。

C++ で cbrt() 関数を使用したキューブ ルート

C++ の cmath ライブラリの cbrt() 関数を使用して、数値の立方根を見つけることができます。 関数の基本的な構文を以下に示します。

output = cbrt(input);

cbrt() 関数の入力は、いくつかのデータ型 intfloatdouble、または long でなければなりません。 入力は文字列または文字値であってはなりません。

cbrt() 関数は入力数値の立方根を double データ型で返しますが、floatlong などの他のデータ型で結果を格納することもできます。

たとえば、cbrt() 関数を使用して数値の立方根を取得してみましょう。 以下のコードを参照してください。

#include <cmath>
#include <iostream>

int main() {
  double number = 3;
  double cubeRoot = std::cbrt(number);
  std::cout << cubeRoot;

  return 0;
}

出力:

1.44225

上記のコードには、iostreamcmath の 2つのライブラリが含まれています。 上記のコードの cout 関数は、出力を表示する iostream ライブラリに属しています。

cbrt() 関数は cmath ライブラリに属し、指定された数値の立方根を取るために使用されます。 double データ型を使用して、指定された数値と cbrt 関数の出力を格納しました。

cbrt() 関数は結果を double データ型で返しますが、cbrtf() および cbrtl() 関数を使用して数値の立方根を取ることもできます。 cbrtf() 関数は結果を浮動小数点データ型で返し、cbrtl() 関数はデータ型を long データ型で返します。

これらの関数の違いは、出力結果のサイズです。 たとえば、float 変数のサイズは 4 バイトで、double および long 変数のサイズは 8 バイトです。

したがって、long または double 変数は float 変数よりも多くのメモリ領域を必要としますが、結果が正確になるように、非常に長い数値の立方根を取るために使用できます。

C++ で pow() 関数を使用した立方根

C++ の cmath ライブラリの pow() 関数を使用して、数値の立方根を見つけることができます。 pow() 関数は、与えられた数の累乗を取ります。

立方根は値 1/3 の指数として表現できることがわかっています。数値の立方根を取るには、pow() 関数。 関数の基本的な構文を以下に示します。

output = pow(input, power);

pow() 関数の入力数値とべき乗は、いくつかのデータ型 floatdouble、または long である必要があります。 入力とべき乗は、文字列または文字値であってはなりません。

pow() 関数は、入力された数値とべき乗と同じデータ型で結果を返します。 たとえば、pow() 関数を使用して数値の立方根を取得してみましょう。

以下のコードを参照してください。

#include <cmath>
#include <iostream>

int main() {
  double number = 3;
  double power = 1 / 3.;
  double cubeRoot = std::pow(number, power);
  std::cout << cubeRoot;

  return 0;
}

出力:

1.44225

pow() 関数の結果は、cbrt() 関数と比較して同じです。 入力数値が負の場合、累乗関数は機能せず、予期しない結果が生じます。

pow() 関数は、数と累乗がゼロの場合にエラーを返します。また、結果が大きすぎたり小さすぎたりするとエラーになります。

著者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

関連記事 - C++ Math