2015-04-11 7 views
6

Wie finden Sie die Basis y Logarithmus einer Zahl x in Scala? Ich habe die scala.math Bibliothek durchsucht und finde keinen Weg. Es scheint nur log10 (x) und ln (x) zu haben.Finden Sie den Logarithmus einer Zahl in Scala

+0

Der Vollständigkeit halber gibt es auch log1p (x), die den natürlichen Logarithmus von 1 + x zurückgibt. – Jorge

Antwort

8

Dies ist eine Frage der Mathematik :)

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

Zufalls Link aus dem Internet, die dies erklärt:

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

+1

Es gibt keine Funktion in der Bibliothek, um dies zu tun? Ich dachte, dass ich es nicht selbst berechnen müsste. Obwohl ich das mathematisch schon kann, würde ich eine bereits implementierte Funktion bevorzugen. – Adam

+0

Ich erinnere mich, dass ich dies in Java vor langer Zeit (10 Jahre + !!) machen musste und auf diese Technik zurückgreifen musste. Könnte geändert haben. –

+0

Es ist ein großartiger Weg und ich werde es benutzen, da ich keinen anderen finde. Vielen Dank. – Adam

2

Der Einfachheit halber können Sie eine Lambda-Funktion nutzen können, zB

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

scala> log2(2) 
res0: Double = 1.0 
Verwandte Themen