n!
给出 n 的阶乘.
Factorial 
n!
给出 n 的阶乘.
背景
- Factorial 表示阶乘函数. 具体来讲,Factorial[n] 返回给定数字
的阶乘
,对于正整数,其定义为
. 对于 n1,2,…,前几个值为 1,2,6,24,120,720,…. 特殊情况
被定义为 1,与排列组合的解释一致,正好只有一种排列零个对象的方法. 对于一般复数
,
,其中 Gamma 函数
的定义为
,该定义对所有复数
成立,除了
是负整数的情况(这时
为负无穷). 半整数的阶乘由
的有理倍数给出. - 最为大家熟知的是阶乘可以计算列表元素固定排序的数量,称为置换,可用 Permutations 生成. 对于由
个(不同的)元素组成的列表,有
种置换,原因是有
个位置可以放置第一个元素,第一个元素放好后,有
个位置可以放置第二个元素,前两个元素放好后,有
个位置可以放置第三个元素,以此类推,直到只剩下一个位置,可以放置最后一个元素. 因此对于
,有
种置换,即
、
、
、
、
和
. - 更广泛地说,对于
个元素的多重集合 (multiset), 其中有
个不同的元素,第 
个不同的元素有
份拷贝(因此
),置换的数量等于由 Multinomial 给出的多项式系数
. 多项式系数
也可以计算将
个元素的集合划分成
个有标签的、大小为 n1,…,nk 的子集的方法的数量. 因此由 Binomial 给出的二项式系数
被定义为计算
个元素组成的集合的
个元素的子集的数量,它满足
. - 阶乘函数满足循环关系式
和
. 它比所有指数函数增长得都快,从 Stirling 逼近
可以看出. 阶乘也出现在数论和分析的基本结果中. Wilson 定理指出
,当且仅当
为质数时. 如果
是一个无限可微的标量函数,则其关于点
(可用 Series 算出)的泰勒级数表示由
给出. 在指数函数
的泰勒级数中设置
和
给出了完美的 E(自然对数的底数)的恒等式
. - 其他与 Factorial 有关的函数或拓展 Factorial 的函数包括 Factorial2、 FactorialPower、
、QFactorial、BarnesG 和 Pochhammer.
范例
打开所有单元 关闭所有单元基本范例 (6)
Table[n!, {n, 10}]25!(1.5)!Plot[Factorial[x], {x, -5, 5}]ComplexPlot3D[Factorial[z], {z, -2 - 2I, 2 + 2I}, PlotLegends -> Automatic]Series[Factorial[x], {x, 0, 2}]//FullSimplify在 Infinity 的级数展开:
Series[Factorial[x], {x, ∞, 2}]//FullSimplify//Normal范围 (35)
数值计算 (6)
Factorial[4]Factorial[0]N[Factorial[1 / 13], 10]Factorial[5.211111111111111111]N[Factorial[2 + I]]Factorial[13`100]//TimingFactorial[45`1000];//Timing用 Interval 和 CenteredInterval 对象计算最坏情况下的区间:
Factorial[Interval[{2.1, 2.2}]]Factorial[CenteredInterval[4, 1 / 100]]或用 Around 计算普通的统计区间:
Factorial[Around[2, 0.01]]Factorial[{{1, 2}, {3, 4}}]或者用 MatrixFunction 计算矩阵形式的 Factorial 函数::
MatrixFunction[Factorial, {{1, 2}, {3, 4}}]//FullSimplify特殊值 (5)
固定点的 Factorial 值:
Table[Factorial[x ], {x, 1, 4}]Factorial[0]10000!//ShortN[%](1 / 2)!求 Factorial[x] 的正的最小值:
xmin = FindRoot[D[Factorial[x ], x] == 0, {x, 0.2}][[1, 2]]Plot[Factorial[x], {x, -2, 4}, Epilog -> Style[Point[{xmin, Factorial[xmin]}], PointSize[Large], Red]]可视化 (2)
绘制 Factorial 函数:
Plot[Factorial[x], {x, -5, 5}]ComplexContourPlot[Re[Factorial[z]], {z, -1 - I, 1 + I}, Contours -> 20]ComplexContourPlot[Im[Factorial[z]], {z, -1 - I, 1 + I}, Contours -> 20]函数属性 (10)
FunctionDomain[Factorial[x], x]FunctionDomain[Factorial[z], z, Complexes]Factorial 逐个作用于列表的每个元素:
{2, 3, 5, 7, 11}!FullSimplify[Factorial[Conjugate[z]] == Conjugate[Factorial[z]]]Factorial 不是解析函数:
FunctionAnalytic[Factorial[z], z]FunctionMeromorphic[Factorial[z], z]Factorial 既不是非递减也不是非递增:
FunctionMonotonicity[{Factorial[z], z > -1}, z]Factorial 不是单射函数:
FunctionInjective[Factorial[z], z]Plot[{Factorial[z], 1.2}, {z, -5, 5}]Factorial 不是满射函数:
FunctionSurjective[Factorial[z], z]Plot[{Factorial[z], 0}, {z, -5, 5}]Factorial 既不是非负,也不是非正:
FunctionSign[Factorial[z], z]Factorial 对负整数同时具有奇异性和不连续性:
FunctionSingularities[Factorial[z], z]FunctionDiscontinuities[Factorial[z], z]Factorial 既不凸,也不凹:
FunctionConvexity[Factorial[z], z]微分 (2)
级数展开 (6)
使用 Series 求泰勒展开:
Series[Factorial[x], {x, 0, 3}]// Normal// FullSimplifyterms = Normal@Table[Series[Factorial[x], {x, 0, m}], {m, 1, 5, 2}];
Plot[{Factorial[x], terms}, {x, -5, 5}]求 Infinity 处的级数展开式(斯特灵近似):
Series[Factorial[x], {x, Infinity, 1}]Simplify[Normal[%]]Series[n!, {n, 1, 2}]Series[Factorial[x], {x, DirectedInfinity[z], 1}, Assumptions -> x > 0]// FullSimplifySeries[Factorial[x], {x, -1, 2}, Assumptions -> x > 1]//FullSimplifySeries[Factorial[x], {x, x0, 2}]// FullSimplify递推恒等式和化简 (2)
函数表示 (2)
Integrate[t ^ n Exp[-t], {t, 0, Infinity}, Assumptions -> Re[n] > -1]TraditionalForm 格式:
Factorial[z]//TraditionalForm推广和延伸 (4)
N[(22 / 10)!, 50](2.20000000000000000000000)!Factorial[Infinity]Factorial[-Infinity]Factorial 允许求导:
D[n!, n]应用 (6)
Table[(n - 1 / 2)!, {n, 10}]Length[Permutations[Range[6]]]6!在复平面上绘制 Factorial 的绝对值:
Plot3D[Abs[Factorial[x + I y]], {x, -5, 2}, {y, -1, 1}]Series[(n + α)! / (n + β)!, {n, Infinity, 2}]//SimplifyPi ^ (n / 2) / (n / 2)!Table[% r ^ n, {n, 1, 4}]ListPlot[Table[%%, {n, 0, 25}]]Series[n!, {n, -Infinity, 3}]Simplify[Normal[%]]属性和关系 (9)
用 FullSimplify 来化简包含 Factorial 的表达式:
FullSimplify[(n + 3)! / n!]计算涉及 Factorial 生成函数的和:
Sum[x ^ n / n!, {n, Infinity}]计算涉及 Factorial 的数值和:
Underoverscript[∑, k = 0, n]k!Underoverscript[∑, k = 1, n](k - 1/k!)Sum[k! * x ^ k, {k, 0, Infinity}, Assumptions -> x != 0]Sum[k! x ^ k, {k, 0, Infinity}, Regularization -> "Borel"]Series[%, {x, 0, 12}]Series[HypergeometricPFQ[{1, 1}, {}, x], {x, 0, 12}]Integrate[Log[n!], {n, 0, 1}]Product[(3k + 1)!, {k, n}]Round[% /. n -> 10]Product[(3k + 1)!, {k, 10}]Factorial 可被表示为 DifferenceRoot:
DifferenceRootReduce[Factorial[k], k]FindSequenceFunction 可以识别 Factorial 序列:
Table[Factorial[n], {n, 10}]FindSequenceFunction[%, n]Factorial 的指数母函数:
ExponentialGeneratingFunction[Factorial[n], n, x]可能存在的问题 (2)
巧妙范例 (3)
DigitCount[100000!]Histogram[IntegerDigits[100000!]]DensityPlot[Arg[Nest[Factorial, x + I y, 3]], {x, -1, -0.65}, {y, -0.2, 0.2}]在无穷大处绘制 Factorial:
DensityPlot[Arg[Factorial[1 / (x + I y)]], {x, -0.4, 0.4}, {y, -0.4, 0.4}]技术笔记
-
▪
- 一些数学函数 ▪
- 组合函数 ▪
- 关于内部实现的一些注释: 数值及相关函数
历史
1988年引入 (1.0) | 在以下年份被更新:2021 (13.0) ▪ 2022 (13.1)
文本
Wolfram Research (1988),Factorial,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Factorial.html (更新于 2022 年).
CMS
Wolfram 语言. 1988. "Factorial." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2022. https://reference.wolfram.com/language/ref/Factorial.html.
APA
Wolfram 语言. (1988). Factorial. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Factorial.html 年
BibTeX
@misc{reference.wolfram_2026_factorial, author="Wolfram Research", title="{Factorial}", year="2022", howpublished="\url{https://reference.wolfram.com/language/ref/Factorial.html}", note=[Accessed: 06-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_factorial, organization={Wolfram Research}, title={Factorial}, year={2022}, url={https://reference.wolfram.com/language/ref/Factorial.html}, note=[Accessed: 06-September-2026]}