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

C++ STLのbeta()・betaf()・betal()関数の使い方を解説

beta()、betaf()、betal()は、C++の標準テンプレートライブラリ(STL)に組み込まれている数学関数です。これらの関数は、2つの正の実数を受け取り、ベータ関数の値を計算するために使用されます。

ベータ関数は次のように定義されます。

B(x, y) = ∫01 t(x−1)(1−t)(y−1) dt

beta()関数

beta()関数はdouble型の値を扱うための関数です。引数としてdouble型の値を受け取り、計算結果をdouble型で返します。

構文

double beta(double x, double y)

パラメータ

x:ベータ関数におけるxの値(double型)
y:ベータ関数におけるyの値(double型)

戻り値:ベータ関数の計算結果がdouble型で返されます。

使用例

#include <bits/stdc++.h>
using namespace std;
int main(){
    double x = 4.93;
    double y = 5.01;
    double result = beta(x, y);
    cout<<"B("<<x<<" , "<<y<<") = "<<result<<"\n";
    return 0;
}

出力

B(4.93 , 5.01) = 0.00166054

betaf()関数

betaf()関数はfloat型の値を扱うための関数です。引数としてfloat型の値を受け取り、計算結果をfloat型で返します。

構文

float betaf(float x, float y)

パラメータ

x:ベータ関数におけるxの値(float型)
y:ベータ関数におけるyの値(float型)

戻り値:ベータ関数の計算結果がfloat型で返されます。

使用例

#include <bits/stdc++.h>
using namespace std;
int main(){
    float x = 0.31;
    float y = 3.99;
    float result = betaf(x, y);
    cout<<"B("<<x<<" , "<<y<<") = "<<result<<"\n";
    return 0;
}

出力

B(0.31 , 3.99) = 1.93395

betal()関数

betal()関数はlong double型の値を扱うための関数です。引数としてlong double型の値を受け取り、計算結果をlong double型で返します。

構文

long double betal(long double x, long double y)

パラメータ

x:ベータ関数におけるxの値(long double型)
y:ベータ関数におけるyの値(long double型)

戻り値:ベータ関数の計算結果がlong double型で返されます。

使用例

#include <bits/stdc++.h>
using namespace std;
int main(){
    long double x = 3453.35451;
    long double y = 9862.89651;
    long double result = betal(x, y);
    cout<<"B("<<x<<" , "<<y<<") = "<<result<<"\n";
    return 0;
}

出力

B(3453.35 , 9862.9) = 4.39947e-3312

まとめ

beta()、betaf()、betal()の3つの関数は、扱うデータ型が異なるだけで、いずれも同じベータ関数を計算します。必要な精度やメモリ効率に応じて、通常の用途ではdouble型用のbeta()、メモリを節約したい場合はfloat型用のbetaf()、高い精度が必要な場合はlong double型用のbetal()を使い分けるとよいでしょう。

  1. C++のceil関数とfloor関数の使い方をわかりやすく解説

    ceil関数とは ceil関数は、引数に渡した値以上となる整数のうち、最も小さい値(切り上げた値)を返す関数です。C++では「cmath」ヘッダーファイル内で宣言されており、引数には天井値を求めたい単一の値を指定します。なお、引数のデータ型はdouble型・float型・long double型のいずれかである必要があります。 C++におけるceil関数の構文は以下のとおりです。 double ceil(double x); float ceil(float x); それでは、ceil関数を使用した具体的なサンプルコードを見ていきましょう。 サンプルコード #include <iost

  2. C++でfloatとdoubleを比較する方法|許容誤差(EPSILON)を使った実装例

    C++においてfloat型やdouble型などの浮動小数点数を比較する方法は、最終的に何を実現したいかによって異なります。浮動小数点数は内部で2進数の近似値として表現されるため、「==」演算子による単純な等価比較では意図しない結果になることがあります。そこで一般的には、許容できる誤差(イプシロン)を設定し、その範囲内であれば同じ値とみなす手法が用いられます。 理論面に深入りしすぎず、すぐに使える関数が必要で、多少の計算誤差が許容できる場合は、以下のような関数が便利です。 サンプルコード #include<iostream> using namespace std; // 許容でき