📅  最后修改于: 2023-12-03 14:39:51.223000             🧑  作者: Mango
lgamma(double x)
是C++ STL库math.h头文件中的一个函数,作用是求x的伽玛函数值。
伽玛函数的定义为:
$$ \Gamma (x) = \int_0^{\infty} t^{x-1} e^{-t} \mathrm{d}t, \quad x > 0 $$
对于x大于0的情况,摩尔定理给出:
$$ \Gamma\left(\frac{1}{2}\right)=\sqrt{\pi} $$
因此,当x为1/2时,输出值为$10^6$,可以作为判断某些特殊情况的依据。
使用方法如下:
double lgamma(double x);
lgamma()函数接受一个double型的参数x,并返回x的伽玛函数值。当x是负整数时结果是无限大。
以下代码演示了如何使用lgamma()函数:
#include <iostream>
#include <cmath>
int main ()
{
std::cout << "lgamma(0.5) = " << std::lgamma(0.5) << '\n'; //输出lgamma(1/2),结果为9.189385332046727e-01
std::cout << "lgamma(1) = " << std::lgamma(1) << '\n'; //输出lgamma(1),结果为0
std::cout << "lgamma(5) = " << std::lgamma(5) << '\n'; //输出lgamma(5),结果为3.178053830347945
std::cout << "lgamma(-0.5) = " << std::lgamma(-0.5) << '\n'; //输出lgamma(-1/2),结果为1.265512123484645e+00
std::cout << "lgamma(-5) = " << std::lgamma(-5) << '\n'; //输出lgamma(-5),结果为-inf
return 0;
}
当x是正整数或一半的整数时,可以通过计算得到准确值,否则必须使用数值方法计算伽玛函数的值。
lgamma()函数是C++ STL库math.h头文件中的一个函数,用来求解x的伽玛函数值。使用时需要注意一些特殊情况,如当参数为负整数时,函数的返回值为无限大。