2015-04-11 2 views
6

Как найти базовый логарифм числа x в Scala? Я искал библиотеку scala.math, и я не могу найти способ. Кажется, что он имеет только log10 (x) и ln (x).Найти логарифм числа в Scala

+0

Для полноты также существует log1p (x), который возвращает естественный журнал 1 + x. – Jorge

ответ

8

Это математика вопрос :)

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

Любая ссылка из Интернета, что объясняет это:

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

+1

В этой библиотеке нет функции? Я думал, что мне не придется вычислять его сам. Хотя я уже знаю, как это сделать математически, я бы предпочел бы для уже реализованной функции. – Adam

+0

Я помню, что мне пришлось делать это в java давно (10 лет + !!) и прибегать к этой технике. Может измениться. –

+0

Это отличный способ, и я буду использовать его, поскольку я не нашел другого. Большое спасибо. – Adam

2

Для удобства, вы можете использовать функцию лямбда, например,

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

scala> log2(2) 
res0: Double = 1.0 
Смежные вопросы