Excel具有GAMMALN函数,该函数返回伽马函数Γ(x)的自然对数。
GAMMALN(4)返回gamma函数在4时的自然对数,得出
1.7917595。
Postgres似乎没有我可以告诉的GAMMALN等效函数。我该如何计算呢?
答案 0 :(得分:1)
我会尝试:
答案 1 :(得分:0)
由于Postgres没有它,因此您似乎需要重新实现log-gamma函数。会有多少麻烦取决于您希望它有多普遍。如果您只需要整数的log-gamma,则可以使用定义
log(gamma(n)) = log((n - 1) times (n - 2) times (n - 3) times ... times 1)
,因此为log(n - 1) + log(n - 2) + log(n - 3) + ... + 0
。我假设有人可以用SQL表示这一点,尽管我不知道如何进行求和。
对于非整数用户,您可以选择。随意的网络搜索会找到this article about implementing log-gamma in C#,您可以从中获得一些想法和参考。如果不需要很高的精度,可以接受的一种简单方法是做降序积log(x - 1) + log(x - 2) + log(x - 3) + ...
,然后为最终的log(gamma(x - floor(x) + 1))
找到一个简单的近似值(也许只是一个查找表)(我的意思是,它是gamma(x-floor(x)+1)的简单近似值,然后取该值的对数。
看看Abramowitz&Stegun及其后来的版本,即数学函数数字图书馆。两者都在网络上。
祝你好运,玩得开心,看来是一个有趣的问题。