有限集的超几何分布有SQL解吗?

Is there a SQL solution for Hypergeometric Distribution for a finite set?

我正在浏览 Microsoft Excel 中 HYPGEOM.DIST 的等效 SQL 实现。我探索了使用从 1 到 N (1...N) 的分布来播种阶乘 table 的选项,但我正在寻找其他选项。

Given:

x = sample_s
n = number_sample
M = population_s
N = number_pop

参考Excel功能: https://support.office.com/en-us/article/hypgeom-dist-function-6dbd547f-1d12-4b1f-8ae5-b0d9e3d22fbf

您可以使用您最熟悉的任何技术table 为您需要的任何范围预先计算阶乘,并将它们存储在单独的 table.

其余的,我想,应该是微不足道的。

编辑: 仔细想想,我不确定你打算如何超越你已经遇到的限制。 170! ~= 7.25741562E+307,根据documentation,可以存储为float的最大值为1.79E+308。看来SQL服务器不是很适合你的任务table;您将不得不在别处寻找处理(和存储)非常大的数字的系统。

也许可以求助于对数而不是实际值的计算 - 这尤其诱人,因为 Stirling's formula 的原始形式实际上是对数。然而,这需要将所有这些公式重写成它们的对数形式。这涉及相当多的数学知识,我个人的知识甚至不足以判断它是否真的可以实现。但这并不意味着它应该阻止您尝试:)