`org.apache.commons.math3.distribution.BinomialDistribution(1,p)` 会带来很多性能开销吗?

Does `org.apache.commons.math3.distribution.BinomialDistribution(1,p)` come with much performance overhead?

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

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

如果您实际使用分布方法并且性能很重要,您应该子类化 AbstractIntegerDistribution。

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