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π)
对于所有这些,您将减去两个可能具有相似大小的项,因此您很容易失去准确性。
相当简单的问题,但我一直无法在网上找到任何东西。
我正在寻找 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π)
对于所有这些,您将减去两个可能具有相似大小的项,因此您很容易失去准确性。