`org.apache.commons.math3.distribution.BinomialDistribution(1,p)`是否有很多性能开销?

时间:2015-02-26 12:46:37

标签: java apache-commons apache-commons-math bernoulli-probability

伯努利分布相当于只有1个试验的二项分布,即来自Apache Commons Math库的BinomialDistribution(1,p)。伯努利分布显然比一般二项分布简单得多。

如果效果很重要,我应该通过继承BernoulliDistribution(p)来推广自己的AbstractIntegerDistribution,还是只需要BinomialDistribution(1,p)来获得几乎相同的效果?

1 个答案:

答案 0 :(得分:2)

如果您实际使用的是分发方法并且性能很重要,那么您应该将AbstractIntegerDistribution继承为子类。

BinomialDistribution通过特殊函数使用数值近似来实现分布方法。这些计算带来了一些开销,并且在退化(伯努利)情况下不是必需的,其中可以返回常数。从版本3.4.1开始,probability方法中没有检查退化情况;虽然有cumulativeProbability的支票。