如何计算Scala中的泊松数

时间:2013-04-22 20:03:25

标签: scala statistics

没有标准的库函数来执行此操作。我怎样才能有效地做到这一点?

2 个答案:

答案 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)
}