javascript корень из числа

Как можно получить корень 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 -ная степень неотрицательной базы:

Источник: computermaker.info

Техника и Гаджеты
Добавить комментарий