什么是阶乘?如何使用Javascript计算阶乘

1,856 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情

阶乘的数学运算为:n!。它表示 1 和 n 之间所有数字的乘积。

阶乘的定义

一个数的阶乘是 1 和该数本身之间的所有数的乘积。它是这样写的:n!。所以 2 的阶乘是2!(= 1 × 2)。

要计算阶乘,你需要知道两件事:

  1. 0! = 1
  2. n! = (n - 1)! × n

0 的阶乘值为 1,一个数的阶乘n等于该数n与 的阶乘的乘积n-1

例如,5!等于4! × 5

这里的前几个阶乘值可以让你了解它是如何工作的:

阶乘乘法结果
0!11
1!11
2!1 × 22
3!1 × 2 × 36
4!1 × 2 × 3 × 424
5!1 × 2 × 3 × 4 × 5120
6!1 × 2 × 3 × 4 × 5 × 6720
7!1 × 2 × 3 × 4 × 5 × 6 × 75040
8!1 × 2 × 3 × 4 × 5 × 6 × 7 × 840,320
9!1 × 2 × 3 × 4 × 5 × 6 × 7 × 8 × 9362,880

阶乘用于什么?

实际上,阶乘是你可以对n项目进行的不同排列的数量:3个个体可以用 6 种不同的方式排列(表示为3!)。

例如,让我们看看你可以对三个项目 A、B 和 C 进行的所有安排:

ABC
ACB
BAC
BCA
CAB
CBA

而事实上,3! = 6.

如何计算 0 的阶乘

从这个角度来看阶乘,0的阶乘是什么?

那么,你可以用多少种不同的方式来排列 0 个元素?

排列零元素只有一种方法。这就产生了一系列零元素。

阶乘用例

当你遇到与可能安排的数量有关的问题时,通常会使用阶乘。让我们看一些示例问题。

阶乘例题1:单词“camper”中的字母

你有多少种不同的方式来排列单词的字母camper

这个词camper有 6 个字母,所以可能的排列数由 6: 的阶乘给出6! = 6 × 5 × 4 × 3 × 2 × 1 = 720。那将是一个相当大数量的手工找到的安排,不是吗?

阶乘例题2:从袋子里画彩球

假设一个袋子里有三个球——一个绿色、一个蓝色和一个黄色。

如果你按顺序抽三个球,你有什么机会先得到黄色,第二个绿色,最后一个蓝色?

也许现在你想知道机会与阶乘有什么关系——好吧,一会儿你就会看到。

有 6 种可能的抽球顺序:3!= 6。

获得黄-绿-蓝序列的可能性总数有 1 的机会,因此这是1/(3!)1/616.7%有机会获得所需的结果。

如何使用 JavaScript 以编程方式计算阶乘

在 JavaScript 中以编程方式计算阶乘有两种方法:

如何使用递归计算 JS 中的阶乘

让我们回到计算阶乘时要知道的两件事——即0! = 1n! = (n - 1)! × n。我们可以使用第一个来创建递归函数的基本情况,因为在这种情况下我们已经知道结果。

function factorial(n) {
  if (n === 0) {
      return 1;
  }
}

关于如何计算阶乘的第二件事n! = (n - 1)! × n可以是递归情况。

function factorial(n) {
    if (n === 0) {
        return 1;
    } else {
        return factorial(n-1) * n;
    }
}
    

如何使用 JavaScriptwhile循环计算阶乘

我们之前说过0! = 1。因此,要使用循环计算数字的阶乘,我们可以将变量初始化为1,然后将数字 from 乘以循环n1的变量。

这样,如果输入高于 1,输出很容易为 1。

function factorial(n) {
    let result = 1;
    for (n > 1) {
        result *= n;
        n--;
    }
    return result;
}

结论

阶乘是是否对统计和概率感兴趣的非常重要的运算符。希望可以帮助到你!