Как можно получить корень n -ой степени числа x в JavaScript?
1 ответ 1
Для частных случаев квадратного и кубического корня стоит использовать методы Math.sqrt и Math.cbrt соответственно.
В общем случае корень n -ой степени числа x равен числу x в степени 1/n , поэтому можно использовать метод Math.pow или оператор возведения в степень ** :
Для отрицательных x предложенный способ вернёт NaN , что соответствует определению корня (над действительными числами) для всех случаев кроме нечётных n . При отрицательных x и нечётных n можно написать проверку:
Я пытаюсь получить n-й корень из числа с помощью JavaScript, но я не вижу способа сделать это, используя встроенный объект Math . Я что-то не замечаю?
Если нет.
Есть ли математическая библиотека, которую я могу использовать, которая имеет эту функцию?
Если нет.
Какой лучший алгоритм для этого?
Можете ли вы использовать что-то вроде этого?
Корень n th из x совпадает с x степенью 1/n . Вы можете просто использовать Math.pow :
Обратите внимание, что он не обрабатывает отрицательный результат — вот обсуждение и некоторый код, который делает
Вы можете использовать
n -ный корень из x — это число r такое, что r до степени 1/n составляет x .
В действительных числах есть некоторые подслучаи:
- Существует два решения (одинаковое значение с противоположным знаком), когда x является положительным и r четным.
- Существует одно положительное решение, когда x положительно, а r нечетно.
- Существует одно отрицательное решение, когда x отрицательно, а r нечетно.
- Нет решения, когда x отрицательный, а r — четный.
Я пытаюсь получить n-й корень из числа с помощью JavaScript, но я не вижу способа сделать это, используя встроенный объект Math . Я что-то не замечаю?
Если нет.
Есть ли математическая библиотека, которую я могу использовать, которая имеет эту функцию?
Если нет.
Какой лучший алгоритм для этого?
6 ответов
Можете ли вы использовать что-то вроде этого?
Корень n th из x совпадает с x степенью 1/n . Вы можете просто использовать Math.pow :
Обратите внимание, что он не обрабатывает отрицательный результат — вот обсуждение и некоторый код, который делает
Вы можете использовать
n -ный корень из x — это число r такое, что r до степени 1/n составляет x .
В действительных числах есть некоторые подслучаи:
- Существует два решения (одинаковое значение с противоположным знаком), когда x является положительным и r четным.
- Существует одно положительное решение, когда x положительно, а r нечетно.
- Существует одно отрицательное решение, когда x отрицательно, а r нечетно.
- Нет решения, когда x отрицательный, а r — четный.
Так как Math.pow не любит отрицательную базу с нецелым показателем, вы можете использовать
Для особых случаев квадратного и кубического корней лучше использовать собственные функции Math.sqrt и Math.cbrt соответственно.
В ES7 оператор exponentiation ** может использоваться для вычисления n-го корня как 1 / n -ная степень неотрицательной базы:
Источник: