boost binomial_coefficient 的日志版本?

log version of boost binomial_coefficient?

相当简单的问题,但我一直无法在网上找到任何东西。

我正在寻找 boost::math::binomial_coefficient 的日志版本,它可以处理我的代码生成的一些较大的值。

在 R 中有 lchoose 提供了这个,但是我似乎无法在 c++

中找到等效项

如有任何帮助,我们将不胜感激

我觉得你得自己算算。然而 this question 询问如何做到这一点,事实证明还不错。第一个近似值是:

n log n − m log m − (n−m) log (n−m)

通过使用 Stirling approximation 的另一项 for log(n!)

可以获得更好的近似值
n log n − m log m − (n−m) log (n−m) + ½(log n − log m − log(n−m) − log 2π)

对于所有这些,您将减去两个可能具有相似大小的项,因此您很容易失去准确性。