最終更新日時(UTC):
が更新

履歴 編集

function
<cmath>

std::riemann_zeta(C++17)

namespace std {
float riemann_zetaf(float x);
double riemann_zeta(double x);
long double riemann_zetal(long double x);
}

概要

リーマンのゼータ関数 (Riemann zeta function) を求める。

戻り値

引数 x のリーマンゼータ関数 $$ \zeta (x) = \begin{cases} \displaystyle \sum_{k=1}^\infty k^{-x} & \text{for } x > 1 \\ \displaystyle \frac{1}{1 - 2^{1-x}} \sum_{k=1}^\infty (-1)^{k-1} k^{-x} & \text{for } 0 \le x \le 1 \\ \displaystyle 2^x \pi^{x-1} \sin \frac{\pi x}{2} \Gamma (1 - x) \zeta(1 - x) & \text{for } x < 0 \end{cases} $$ を返す。

#include <cmath>
#include <iostream>

int main() {
  std::cout << "riemann_zeta(-2) = " << std::riemann_zeta(-2) << "\n";  // 0
  std::cout << "riemann_zeta(-1) = " << std::riemann_zeta(-1) << "\n";  // -1 / 12
  std::cout << "riemann_zeta(0)  = " << std::riemann_zeta(0) << "\n";   // -1 / 2
  std::cout << "riemann_zeta(1)  = " << std::riemann_zeta(1) << "\n";   // ∞
  std::cout << "riemann_zeta(2)  = " << std::riemann_zeta(2) << "\n";   // π^2 / 6
}

出力例

riemann_zeta(-2) = 0
riemann_zeta(-1) = -0.0833333
riemann_zeta(0)  = -0.5
riemann_zeta(1)  = inf
riemann_zeta(2)  = 1.64493

バージョン

言語

  • C++17

処理系

参照