Die n
-te Wurzel von x
ist eine Zahl r
, die r
zur Potenz von 1/n
ist x
.
In reellen Zahlen gibt es einige Unterfälle:
- Es gibt zwei Lösungen (gleicher Wert mit entgegengesetztem Vorzeichen), wenn sie
x
positiv und r
gerade sind.
- Es gibt eine positive Lösung, wenn sie
x
positiv und r
ungerade ist.
- Es gibt eine negative Lösung, wenn sie
x
negativ und r
ungerade ist.
- Es gibt keine Lösung, wenn
x
negativ und gerade r
ist.
Da Math.pow
eine negative Basis mit einem nicht ganzzahligen Exponenten nicht gefällt, können Sie verwenden
function nthRoot(x, n) {
if(x < 0 && n%2 != 1) return NaN;
return (x < 0 ? -1 : 1) * Math.pow(Math.abs(x), 1/n);
}
Beispiele:
nthRoot(+4, 2);
nthRoot(+8, 3);
nthRoot(-8, 3);
nthRoot(-4, 2);