JavaScript: Вычислить энный корень номера

я пытаюсь получить энный корень числа с помощью JavaScript, но я не вижу способ сделать это с помощью созданного в Математика объект. Я пропускаю что-то?
Если нет...

там математическая библиотека, которой я могу пользоваться, который имеет эту функциональность?
Если нет...

, Что лучший алгоритм должен сделать это самостоятельно?

72
задан Nathan 5 September 2011 в 13:14
поделиться

1 ответ

Ну, я знаю, что это - старый вопрос. Но на основе ответа SwiftNinjaPro я упростил функцию и устранил некоторые проблемы NaN.Примечание: Эта функция использовала функцию ES6, функцию стрелки и шаблонные строки и exponentation. Так, это не могло бы работать в более старых браузерах:

Math.numberRoot = (x, n) => {
  return (((x > 1 || x < -1) && n == 0) ? Infinity : ((x > 0 || x < 0) && n == 0) ? 1 : (x < 0 && n % 2 == 0) ? `${((x < 0 ? -x : x) ** (1 / n))}${"i"}` : (n == 3 && x < 0) ? -Math.cbrt(-x) : (x < 0) ? -((x < 0 ? -x : x) ** (1 / n)) : (n == 3 && x > 0 ? Math.cbrt(x) : (x < 0 ? -x : x) ** (1 / n)));
};

Пример:

Math.numberRoot(-64, 3); // Returns -4

Пример (Результат мнимого числа):

Math.numberRoot(-729, 6); // Returns a string containing "3i".
0
ответ дан 24 November 2019 в 12:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: