没有标准的库函数来执行此操作。我怎样才能有效地做到这一点?
答案 0 :(得分:2)
Scala Breeze,http://www.scalanlp.org/在其stats.distributions包中有一个Poisson类。
case class Poisson(mean: Double)(implicit rand: RandBasis = Rand)
答案 1 :(得分:0)
我将this answer翻译成Scala:
def recursive_poisson_helper(m:Long, r:Long, p:Double, i:Long):Double = {
if (r == i) {
p
} else {
recursive_poisson_helper(m, r, (p * m) / (i + 1), i + 1)
}
}
def efficient_poisson(m:Long, r:Long): Double = {
val p = math.exp(-m)
recursive_poisson_helper(m, r, p, 0)
}