【问题标题】:Does `org.apache.commons.math3.distribution.BinomialDistribution(1,p)` come with much performance overhead?`org.apache.commons.math3.distribution.BinomialDistribution(1,p)` 会带来很多性能开销吗?
【发布时间】:2015-04-28 20:32:37
【问题描述】:

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

如果性能很重要,我应该通过子类化AbstractIntegerDistribution 来创建自己的BernoulliDistribution(p),还是只使用BinomialDistribution(1,p) 可以获得几乎相同的性能?

【问题讨论】:

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


    【解决方案1】:

    如果你实际使用分布方法并且性能很重要,你应该继承 AbstractIntegerDistribution。

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

    【讨论】:

      猜你喜欢
      • 2012-01-05
      • 1970-01-01
      • 2021-12-18
      • 2010-11-09
      • 1970-01-01
      • 2020-08-30
      • 2013-05-25
      • 2012-04-04
      • 2015-10-29
      相关资源
      最近更新 更多