2013-04-22 2 views

ответ

1

Я перевел 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) 
} 
+0

'i' должно быть, должно быть,' Long', иначе иначе вы не должны действительно проверять равенство. – Debilski

+0

И имена функций не следуют руководству стиля Скала, все эти ненужные фигурные скобки и 'recursive_poisson_helper' должны быть внутренней функцией. – sschaef

+0

Я scala n00b, спасибо за отзыв! Я изменю. –

2

Scala Breeze, http://www.scalanlp.org/ имеет класс Пуассона в его пакете stats.distributions.

case class Poisson(mean: Double)(implicit rand: RandBasis = Rand) 
Смежные вопросы