名前空間
変種
操作

std::beta, std::betaf, std::betal

From cppreference.com
 
 
 
 
double      beta( double x, double y );

float       betaf( float x, float y );

long double betal( long double x, long double y );
(1)
Promoted    beta( Arithmetic x, Arithmetic y );
(2)
1) xyベータ関数を計算します。
2) (1) でカバーされていない、算術型のすべての引数の組み合わせに対するオーバーロードまたは関数テンプレートのセットです。整数型の引数がある場合、それは double にキャストされます。long double の引数がある場合、戻り値の型 Promotedlong double になります。それ以外の場合、戻り値の型は常に double です。

すべての特殊関数と同様に、beta<cmath> で利用可能であることは、実装によって __STDCPP_MATH_SPEC_FUNCS__ が 201003L 以上の値に定義されており、かつユーザーが標準ライブラリヘッダーをインクルードする前に __STDCPP_WANT_MATH_SPEC_FUNCS__ を定義している場合にのみ保証されます。

目次

[編集] Parameters

x, y - 浮動小数点型または整数型の値

[編集] Return value

エラーが発生しない場合、xy のベータ関数の値、すなわち 1
0
tx-1
(1 - t)(y-1)
dt
、または等価的に
Γ(x)Γ(y)
Γ(x + y)
が返されます。

[編集] Error handling

math_errhandling で指定されたとおりにエラーが報告される場合があります。

  • 引数に NaN が含まれる場合、NaN が返され、ドメインエラーは報告されません。
  • この関数は、xy の両方がゼロより大きい場合にのみ定義されていることが要求され、それ以外の場合はドメインエラーを報告することが許可されています。

[編集] Notes

TR 29124 をサポートしないが TR 19768 をサポートする実装では、この関数はヘッダー tr1/cmath および名前空間 std::tr1 で提供されます。

この関数の実装は、boost.math でも利用可能です。

beta(x, y)beta(y, x) と等しくなります。

xy が正の整数である場合、beta(x, y) は
(x - 1)!(y - 1)!
(x + y - 1)!
に等しくなります。二項係数はベータ関数で表すことができます:

n
k


=
1
(n + 1)Β(n - k + 1, k + 1)

[編集] Example

(gcc 6.0で示されたとおりに動作します)

#define __STDCPP_WANT_MATH_SPEC_FUNCS__ 1
#include <cmath>
#include <iomanip>
#include <iostream>
#include <string>
 
double binom(int n, int k)
{
    return 1 / ((n + 1) * std::beta(n - k + 1, k + 1));
}
 
int main()
{
    std::cout << "Pascal's triangle:\n";
    for (int n = 1; n < 10; ++n)
    {
        std::cout << std::string(20 - n * 2, ' ');
        for (int k = 1; k < n; ++k)
            std::cout << std::setw(3) << binom(n, k) << ' ';
        std::cout << '\n';
    }
}

出力

Pascal's triangle:
 
                  2 
                3   3 
              4   6   4 
            5  10  10   5 
          6  15  20  15   6 
        7  21  35  35  21   7 
      8  28  56  70  56  28   8 
    9  36  84 126 126  84  36   9

[編集] See also

(C++11)(C++11)(C++11)
ガンマ関数
(関数) [編集]

[編集] External links

Weisstein, Eric W. "Beta Function." MathWorld--A Wolfram Web Resource より。

English 日本語 中文(简体) 中文(繁體)