boost::math::bernoulli_b2n を使用してベルヌーイ数を計算する
ベルヌーイ数を計算する必要がある場合、boost::math ライブラリには便利な関数 bernoulli_b2n が用意されています。非常に大きな n を処理できる効率的なアルゴリズムを使用してベルヌーイ数を計算します。
以下は、bernoulli_b2n を使用して最初の 20 個のベルヌーイ数を計算する方法を示すテスト プログラムです。
#include <iostream>
#include <boost/math/special_functions/bernoulli.hpp>
int main()
{
for (int n = 0; n <= 20; ++n)
{
auto bn = boost::math::bernoulli_b2n(n);
std::cout << "B_" << n << " = " << bn << '\n';
}
return 0;
}
出力結果:
B_0 = 1
B_1 = -1/2
B_2 = 1/6
B_3 = 0
B_4 = -1/30
B_5 = 0
B_6 = 1/42
B_7 = 0
B_8 = -1/30
B_9 = 0
B_10 = 5/66
B_11 = 0
B_12 = -691/2730
B_13 = 0
B_14 = 7/6
B_15 = 0
B_16 = -3617/510
B_17 = 0
B_18 = 43867/798
B_19 = 0
B_20 = -174611/330
出力結果は、ベルヌーイ数表の最初の 20 個の数値と同じであることがわかります。
bernoulli_b2n 関数によって返される結果の型は boost::multiprecision::cpp_rational であり、必要に応じてさらに計算するために、double などの他の型に変換する必要がある場合があることに注意してください。
これで、boost::math::bernoulli_b2n を使用してベルヌーイ数を計算する方法がわかりました。