如何在 JavaScript 中计算一个数的 n 次方根?
我们给定一个数字,任务是使用 JavaScript 计算该数字的 n 次方根。我们可以通过多种方法实现这一点,其中一些如下所示。
使用 Math.pow() 方法
使用对数
要获得一个数的 n 次方根,首先让我们了解一下我们可以计算哪些数的根,以及哪些数的根我们无法计算。
如果数字为正且根为偶数,则我们将得到两个解。**例如** - 16 的 2 次方根是 +4 和 -4,类似地,16 的 4 次方根是 +2 和 -2
如果数字为负且根为奇数,则我们将得到一个负解。**例如** - -27 的 3 次方根仅为 -3(而非 3)。
如果数字为正且根为奇数,则我们将得到一个正解。**例如** - 27 的 3 次方根为 3
如果数字为负且根为偶数,则没有解。
使用 Math.pow() 方法
JavaScript 中的 Math.pow() 函数用于获取一个数的幂。即某个指数的数字值。此方法接受两个参数,一个是底数,另一个是指数。我们使用什么样的参数并不重要,例如整数、分数、负数等,它可以取任何值并进行运算。
语法
Math.pow( X, Y )
参数
X - 这是我们想要计算幂的底数。
Y - 这是指数
步骤
您可以按照以下步骤使用 Math.power() 方法查找一个数的 n 次幂
步骤 1 - 检查底数是正数还是负数。以及 n 次方根是奇数还是偶数。
步骤 2 - 如果底数为正且根为偶数。答案将是结果的正数和负数版本。
步骤 3 - 如果底数为正且根为奇数。答案将是结果的正数版本。
步骤 4 - 如果底数为负且根为偶数,则答案将是结果的负数版本。
步骤 5 - 如果底数为负且根为奇数,则没有答案。
注意 - 在 Math.pow() 中,我们将始终传递底数的绝对值。
示例
在此示例中,我们计算各种数字的 n 次方根。
<html lang="en"> <body> <h2> Calculating the nth root of a number in JavaScript </h2> <p>Here are the nth root of the following values</p> <p id="p1"></p> <p id="p2"></p> <p id="p3"></p> <script> calcRoot(16, 2, "p1"); calcRoot(27, 3, "p2"); calcRoot(-27, 3, "p3"); function calcRoot(base, root, id){ let isBasePositive = base > 0 ? true : false; let isRootEven = root % 2 == 0 ? true : false; let p = document.getElementById(id); if(base == 0){ p.innerText = `${root}th root of ${base} is 0` return } if(root == 0){ p.innerText = `${root}th root of ${base} is Infinity` return } if(isBasePositive && isRootEven){ let ans = Math.pow(base, 1 / root); p.innerText = `${root}th root of ${base} is ${ans} and -${ans}` } if(isBasePositive && !isRootEven){ let ans = Math.pow(base, 1 / root); p.innerText = `${root}th root of ${base} is ${ans}` } if(!isBasePositive && !isRootEven){ let ans = Math.pow( Math.abs( base ), 1 / root); p.innerText = `${root}th root of ${base} is -${ans}` } if(!isBasePositive && isRootEven){ p.innerText = `${root}th root of ${base} is NaN` } } </script> </body> </html>
使用对数
示例
在此方法中,我们使用对数来计算 n 次方根。现在,将此语句转换为 JavaScript 表达式 -
R = Math.exp(1 / root * Math.log(base))
在此示例中,我们正在计算多个数字的根
<html> <body> <h2> Calculating the nth root of a number in JavaScript </h2> <p>Here are the nth root of the following values</p> <p id="p1"></p> <p id="p2"></p> <script> calcRoot(16, 2, "p1") calcRoot(49, 2, "p2") function calcRoot(base, root, id){ let r = Math.exp(1 / root * Math.log(base)) let p = document.getElementById(id); p.innerText = `${root}th root of ${base} is ${r}` } </script> </body> </html>
总之,在 JavaScript 中有多种方法可以计算一个数的 n 次方根。一种方法是使用 Math.pow() 函数,它接受两个参数:底数和指数。底数是要计算其根的数字,指数是要计算的根。要使用 Math.pow() 获取一个数的 n 次方根,可以使用以下公式:Math.pow(base, 1/root)。
您还可以使用对数方法,该方法涉及使用 Math.log() 函数计算根。为此,可以使用以下公式:Math.exp(Math.log(base)/root)。重要的是要考虑底数是正数还是负数以及根是偶数还是奇数,因为这会影响可能的解。