2015-04-11 12 views
6

Scala'da x sayısının temel y logaritması nasıl bulunur? Scala.math kütüphanesini aradım ve bir yol bulamadım. Sadece log10 (x) ve ln (x) var gibi görünüyor.Scala'da bir sayının logaritmasını bulma

+0

Tamlık için, 1 + x doğal günlüğünü döndüren log1p (x) de vardır. – Jorge

cevap

8

Bu bir matematik soru :) Web'den

log<base y>(x) == log10(x)/log10(y) == ln(x)/ln(y) 

Rastgele bağlantı bu açıklar geçerli:

http://www.purplemath.com/modules/logrules5.htm

+1

Kitaplıkta bunu yapmak için bir işlev yok mu? Bunu kendi başıma hesaplamak zorunda kalmayacağımı düşündüm. Zaten matematiksel olarak nasıl yapılacağını bildiğim halde, zaten uygulanan bir işlevi tercih ederim. – Adam

+0

Bunu uzun zaman önce (10 yıl + !!) java'da yapmak ve bu tekniğe başvurmak zorunda olduğumu hatırlıyorum. Değişebilirdi. –

+0

Bu harika bir yöntem ve başka bir tane bulamadığım için kullanacağım. Çok teşekkür ederim. – Adam

2

rahatlığı için, bir lambda işlevini kullanabilirsiniz, örneğin

scala> var log2 = (x: Double) => log10(x)/log10(2.0) 
log2: Double => Double = <function1> 

scala> log2(2) 
res0: Double = 1.0