«1. Введение

В этом коротком руководстве мы научимся вычислять логарифмы в Java. Мы рассмотрим как десятичные, так и натуральные логарифмы, а также логарифмы с пользовательским основанием.

2. Логарифмы

Логарифм – это математическая формула, представляющая степень, в которую мы должны возвести фиксированное число (основание), чтобы получить данное число.

В простейшей форме он отвечает на вопрос: сколько раз нужно умножить одно число, чтобы получить другое число?

Мы можем определить логарифм следующим уравнением:

{\displaystyle \log _{b}(x)=y\quad }exactly if
{\displaystyle \quad b^{y}=x.}

3. Вычисление десятичных логарифмов

Логарифмы по основанию 10 называются десятичными логарифмами.

Для вычисления десятичного логарифма в Java мы можем просто использовать метод Math.log10():

@Test
public void givenLog10_shouldReturnValidResults() {
    assertEquals(Math.log10(100), 2);
    assertEquals(Math.log10(1000), 3);
}

4. Вычисление натуральных логарифмов

Логарифмы по основанию e называются натуральными логарифмами.

Чтобы вычислить натуральный логарифм в Java, мы используем метод Math.log():

@Test
public void givenLog10_shouldReturnValidResults() {
    assertEquals(Math.log(Math.E), 1);
    assertEquals(Math.log(10), 2.30258);
}

5. Вычисление логарифмов с пользовательским основанием

Чтобы вычислить логарифм с пользовательским основанием в Java, мы используем следующее identity:

{\displaystyle \log _{b}x={\frac {\log _{10}x}{\log _{10}b}}={\frac {\log _{e}x}{\log _{e}b}}.\,}

@Test
public void givenCustomLog_shouldReturnValidResults() {
    assertEquals(customLog(2, 256), 8);
    assertEquals(customLog(10, 100), 2);
}

private static double customLog(double base, double logNumber) {
    return Math.log(logNumber) / Math.log(base);
}

6. Заключение

В этом уроке мы узнали, как вычислять логарифмы в Java.

Как всегда, исходный код доступен на GitHub.