如何在 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)。重要的是要考虑底数是正数还是负数以及根是偶数还是奇数,因为这会影响可能的解。

更新于: 2023年1月6日

1K+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告