qiujava实现一下,有一个gamma阶乘算法的函数是这样的 gamma(x)=(x-1)*gqiujava实现一下,有一个gamma阶乘算法的函数是这样的 gamma(x)=(x-1)*ganma(x-1); gamma(1)=1,gamma(1/2)=pi;比如说x=5时 gamma(x)=5*4*3*2*1=24,X=5/2时
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/18 23:30:27
qiujava实现一下,有一个gamma阶乘算法的函数是这样的 gamma(x)=(x-1)*gqiujava实现一下,有一个gamma阶乘算法的函数是这样的 gamma(x)=(x-1)*ganma(x-1); gamma(1)=1,gamma(1/2)=pi;比如说x=5时 gamma(x)=5*4*3*2*1=24,X=5/2时
qiujava实现一下,有一个gamma阶乘算法的函数是这样的 gamma(x)=(x-1)*g
qiujava实现一下,有一个gamma阶乘算法的函数是这样的
gamma(x)=(x-1)*ganma(x-1);
gamma(1)=1,gamma(1/2)=pi;
比如说x=5时 gamma(x)=5*4*3*2*1=24,
X=5/2时gamma(x)=3/2*1/2*pi=3/4pi.
积分不惜,
qiujava实现一下,有一个gamma阶乘算法的函数是这样的 gamma(x)=(x-1)*gqiujava实现一下,有一个gamma阶乘算法的函数是这样的 gamma(x)=(x-1)*ganma(x-1); gamma(1)=1,gamma(1/2)=pi;比如说x=5时 gamma(x)=5*4*3*2*1=24,X=5/2时
gamma函数通常用Lanczos近似或者Spouge近似来实现
wikipedia上有一个简单的python实现,你自己翻译成java就行了
from cmath import *
# Coefficients used by the GNU Scientific Library
g = 7
p = [0.99999999999980993, 676.5203681218851, -1259.1392167224028,
771.32342877765313, -176.61502916214059, 12.507343278686905,
-0.13857109526572012, 9.9843695780195716e-6, 1.5056327351493116e-7]
def gamma(z):
z = complex(z)
# Reflection formula
if z.real < 0.5:
return pi / (sin(pi*z) * gamma(1-z))
else:
z -= 1
x = p[0]
for i in range(1, g+2):
x += p[i]/(z+i)
t = z + g + 0.5
return sqrt(2*pi) * t**(z+0.5) * exp(-t) * x