я пытаюсь получить энный корень числа с помощью JavaScript, но я не вижу способ сделать это с помощью созданного в Математика
объект. Я пропускаю что-то?
Если нет...
там математическая библиотека, которой я могу пользоваться, который имеет эту функциональность?
Если нет...
, Что лучший алгоритм должен сделать это самостоятельно?
Ну, я знаю, что это - старый вопрос. Но на основе ответа 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".