Java: логарифм с произвольным основанием
Я знаю, что в языке Java есть функция Math.log(a), которая вычисляет логарифм с основанием e. Есть Math.log10(a) для основания 10. Но как средствами Java вычислить логарифм с другим основанием, например, log 50 base 2?
Ответы (1 шт):
Автор решения: Vestalt
→ Ссылка
Согласно формуле (n - любое число):
log b (a) = log n (a) / log n (b)
Тогда вычисление логарифма с произвольным основанием в java будет выглядеть так:
public class Logarithm {
public static double log(int base, int x) {
return Math.log(x) / Math.log(base);
}
public static void main(String[] args) {
System.out.println(Logarithm.log(2, 50));
}
}
Вывод:
5.643856189774724