`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
中有一张支票。
伯努利分布相当于只有 1 次试验的二项式分布,即来自 Apache Commons 数学库的 BinomialDistribution(1,p)
。伯努利分布显然比一般的二项分布要简单得多。
如果性能很重要,我应该通过继承 AbstractIntegerDistribution
来推出自己的 BernoulliDistribution(p)
,还是仅通过 BinomialDistribution(1,p)
获得几乎相同的性能?
如果您实际使用分布方法并且性能很重要,您应该子类化 AbstractIntegerDistribution。
BinomialDistribution 通过特殊函数使用数值近似实现分布方法。这些计算会带来一些开销,并且在可以返回常量的退化(伯努利)情况下不是必需的。从 3.4.1 版本开始,probability
方法中没有检查退化情况;尽管 cumulativeProbability
中有一张支票。