n |
n! |
0 |
1 |
1 |
1 |
2 |
2 |
3 |
6 |
4 |
24 |
5 |
120 |
6 |
720 |
7 |
5040 |
8 |
40320 |
9 |
362880 |
10 |
3628800 |
12 |
479001600 |
15 |
1307674368000 |
18 |
6402373705728000 |
20 |
2432902008176640000 |
24 |
6.20448402×1023 |
25 |
1.5511210043×1025 |
42 |
1.40500612×1051 |
50 |
3.0414093202×1064 |
70 |
1.1978571670×10100 |
100 |
9.3326215444×10157 |
450 |
1.7333687331×101,000 |
1000 |
4.0238726008×102,567 |
3249 |
6.4123376883×1010,000 |
10000 |
2.8462596809×1035,659 |
25206 |
1.2057034382×10100,000 |
100000 |
2.8242294080×10456,573 |
205023 |
2.5038989317×101,000,004 |
1000000 |
8.2639316883×105,565,708 |
1.0248383838×1098 |
1010100 |
10100 |
109.9565705518×10101 |
The first few and selected larger members of the
sequence of factorials (sequence
A000142 in
OEIS). The values specified in scientific notation are rounded to the displayed precision.
In mathematics, the factorial of a non-negative integer n, denoted by n!, is the product of all positive integers less than or equal to n. For example,
- Failed to parse (Missing texvc executable; please see math/README to configure.): 5 ! = 5 \times 4 \times 3 \times 2 \times 1 = 120 \
The value of 0! is 1, according to the convention for an empty product.[1]
The factorial operation is encountered in many different areas of mathematics, notably in combinatorics, algebra and mathematical analysis. Its most basic occurrence is the fact that there are n! ways to arrange n distinct objects into a sequence (i.e., permutations of the set of objects). This fact was known at least as early as the 12th century, to Indian scholars.[2] The notation n! was introduced by Christian Kramp in 1808.[3]
The definition of the factorial function can also be extended to non-integer arguments, while retaining its most important properties; this involves more advanced mathematics, notably techniques from mathematical analysis.
The factorial function is formally defined by
- Failed to parse (Missing texvc executable; please see math/README to configure.): n!=\prod_{k=1}^n k \!
or recursively defined by
- Failed to parse (Missing texvc executable; please see math/README to configure.): n! = \begin{cases} 1 & \text{if } n = 0, \\ (n-1)!\times n & \text{if } n > 0. \end{cases}
Both of the above definitions incorporate the instance
- Failed to parse (Missing texvc executable; please see math/README to configure.): 0! = 1, \
in the first case by the convention that the product of no numbers at all is 1. This is convenient because:
- There is exactly one permutation of zero objects (with nothing to permute, "everything" is left in place).
- The recurrence relation (n + 1)! = n! × (n + 1), valid for n > 0, extends to n = 0.
- It allows for the expression of many formulas, like the exponential function as a power series:
-
- Failed to parse (Missing texvc executable; please see math/README to configure.): e^x = \sum_{n = 0}^{\infty}\frac{x^n}{n!}
- It makes many identities in combinatorics valid for all applicable sizes. The number of ways to choose 0 elements from the empty set is Failed to parse (Missing texvc executable; please see math/README to configure.): \tbinom{0}{0} = \tfrac{0!}{0!0!} = 1
. More generally, the number of ways to choose (all) n elements among a set of n is Failed to parse (Missing texvc executable; please see math/README to configure.): \tbinom nn = \tfrac{n!}{n!0!} = 1 .
The factorial function can also be defined for non-integer values using more advanced mathematics, detailed in the section below. This more generalized definition is used by advanced calculators and mathematical software such as Maple or Mathematica.
Although the factorial function has its roots in combinatorics, formulas involving factorials occur in many areas of mathematics.
- There are n! different ways of arranging n distinct objects into a sequence, the permutations of those objects.
- Often factorials appear in the denominator of a formula to account for the fact that ordering is to be ignored. A classical example is counting k-combinations (subsets of k elements) from a set with n elements. One can obtain such a combination by choosing a k-permutation: successively selecting and removing an element of the set, k times, for a total of
-
- Failed to parse (Missing texvc executable; please see math/README to configure.): n^{\underline k}=n(n-1)(n-2)\cdots(n-k+1)
- possibilities. This however produces the k-combinations in a particular order that one wishes to ignore; since each k-combination is obtained in k! different ways, the correct number of k-combinations is
- Failed to parse (Missing texvc executable; please see math/README to configure.): \frac{n^{\underline k}}{k!}=\frac{n(n-1)(n-2)\cdots(n-k+1)}{k(k-1)(k-2)\cdots1}.
- This number is known as the binomial coefficient Failed to parse (Missing texvc executable; please see math/README to configure.): \tbinom nk
, because it is also the coefficient of Xk in (1 + X)n.
- Factorials also turn up in calculus; for example they occur in the denominators of the terms of Taylor's formula, basically to compensate for the fact that the n-th derivative of xn is n!.
- Factorials can be useful to facilitate expression manipulation. For instance the number of k-permutations of n can be written as
-
- Failed to parse (Missing texvc executable; please see math/README to configure.): n^{\underline k}=\frac{n!}{(n-k)!};
- while this is inefficient as a means to compute that number, it may serve to prove a symmetry property of binomial coefficients:
- Failed to parse (Missing texvc executable; please see math/README to configure.): \binom nk=\frac{n^{\underline k}}{k!}=\frac{n!}{(n-k)!k!}=\frac{n^{\underline{n-k}}}{(n-k)!}=\binom n{n-k}.
Factorials have many applications in number theory. In particular, n! is necessarily divisible by all prime numbers up to and including n. As a consequence, n > 5 is a composite number if and only if
- Failed to parse (Missing texvc executable; please see math/README to configure.): (n-1)!\ \equiv\ 0 \pmod n
A stronger result is Wilson's theorem, which states that
- Failed to parse (Missing texvc executable; please see math/README to configure.): (p-1)!\ \equiv\ -1 \pmod p
if and only if p is prime.
Adrien-Marie Legendre found that the multiplicity of the prime p occurring in the prime factorization of n! can be expressed exactly as
- Failed to parse (Missing texvc executable; please see math/README to configure.): \sum_{i=1}^{\infty} \left \lfloor \frac{n}{p^i} \right \rfloor .
This fact is based on counting the number of factors p of the integers from 1 to n. The number of multiples of p in the numbers 1 to n are given by Failed to parse (Missing texvc executable; please see math/README to configure.): \textstyle \left \lfloor \frac{n}{p} \right \rfloor
- however, this formula counts those numbers with two factors of p only once. Hence another Failed to parse (Missing texvc executable; please see math/README to configure.): \textstyle \left \lfloor \frac{n}{p^2} \right \rfloor
factors of p must be counted too. Similarly for three, four, five factors, to infinity. The sum is finite since p i can only be less than or equal to n for finitely many values of i, and the floor function results in 0 when applied for p i > n.
The only factorial that is also a prime number is 2, but there are many primes of the form n! ± 1, called factorial primes.
All factorials greater than 1! are even, as they are all multiples of 2. Also, all factorials from 5! upwards are multiples of 10 (and hence have a trailing zero as their final digit), because they are multiples of 5 and 2.
Also note that the reciprocals of factorials produce a convergent series: (see e)
- Failed to parse (Missing texvc executable; please see math/README to configure.): \sum_{n=0}^{\infty} \frac{1}{n!} = \frac{1}{1} + \frac{1}{1} + \frac{1}{2} + \frac{1}{6} + \frac{1}{24} + \frac{1}{120} + \ldots = e\,.
Plot of the natural logarithm of the factorial
As n grows, the factorial n! increases faster than all polynomials and exponential functions (but slower than double exponential functions) in n.
Most approximations for n! are based on approximating its natural logarithm
- Failed to parse (Missing texvc executable; please see math/README to configure.): \log n! = \sum_{x=1}^n \log x.
The graph of the function f(n) = log n! is shown in the figure on the right. It looks approximately linear for all reasonable values of n, but this intuition is false. We get one of the simplest approximations for log n! by bounding the sum with an integral from above and below as follows:
- Failed to parse (Missing texvc executable; please see math/README to configure.): \int_1^n \log x \, dx \leq \sum_{x=1}^n \log x \leq \int_0^n \log (x+1) \, dx
which gives us the estimate
- Failed to parse (Missing texvc executable; please see math/README to configure.): n\log\left(\frac{n}{e}\right)+1 \leq \log n! \leq (n+1)\log\left( \frac{n+1}{e} \right) + 1.
Hence log n! is Θ(n log n) (see Big O notation). This result plays a key role in the analysis of the computational complexity of sorting algorithms (see comparison sort). From the bounds on log n! deduced above we get that
- Failed to parse (Missing texvc executable; please see math/README to configure.): e\left(\frac ne\right)^n \leq n! \leq e\left(\frac{n+1}e\right)^{n+1}.
It is sometimes practical to use weaker but simpler estimates. Using the above formula it is easily shown that for all n we have Failed to parse (Missing texvc executable; please see math/README to configure.): (n/3)^n < n! , and for all n ≥ 6 we have Failed to parse (Missing texvc executable; please see math/README to configure.): n! < (n/2)^n .
For large n we get a better estimate for the number n! using Stirling's approximation:
- Failed to parse (Missing texvc executable; please see math/README to configure.): n!\approx \sqrt{2\pi n}\left(\frac{n}{e}\right)^n.
In fact, it can be proved that for all n we have
- Failed to parse (Missing texvc executable; please see math/README to configure.): n! > \sqrt{2\pi n}\left(\frac{n}{e}\right)^n.
A much better approximation[citation needed] for log n! was given by Srinivasa Ramanujan (Ramanujan 1988)
- Failed to parse (Missing texvc executable; please see math/README to configure.): \log n! \approx n\log n - n + \frac {\log(n(1+4n(1+2n)))} {6} + \frac {\log(\pi)} {2}.
If efficiency is not a concern, computing factorials is trivial from an algorithmic point of view: successively multiplying a variable initialized to 1 by the integers 2 up to n (if any) will compute n!, provided the result fits in the variable. In functional languages, the recursive definition is often implemented directly to illustrate recursive functions.
The main practical difficulty in computing factorials is the size of the result. To assure that the exact result will fit for all legal values of even the smallest commonly used integral type (8-bit signed integers) would require more than 700 bits, so no reasonable specification of a factorial function using fixed-size types can avoid questions of overflow. The values 12! and 20! are the largest factorials that can be stored in, respectively, the 32-bit and 64-bit integers commonly used in personal computers. Floating-point representation of an approximated result allows going a bit further, but this also remains quite limited by possible overflow. Most calculators use scientific notation with 2-digit decimal exponents, and the largest factorial that fits is then 69!, because 69! < 10100 < 70!. Calculators that use 3-digit exponents can compute larger factorials, up to, for example, 253! ≈ 5.2×10499 on HP calculators and 449! ≈ 3.9×10997 on the TI-86. The calculator seen in Mac OS X, Microsoft Excel and Google Calculator, as well as the freeware Fox Calculator, can handle factorials up to 170!, which is the largest factorial whose floating-point approximation can be represented as a 64-bit IEEE 754 floating-point value. The scientific calculator in Windows XP is able to calculate factorials up to at least 100000!.
Most software applications will compute small factorials by direct multiplication or table lookup. Larger factorial values can be approximated using Stirling's formula. Wolfram Alpha can calculate exact results for the ceiling function and floor function applied to the binary, natural and common logarithm of n! for values of n up to 249999, and up to 20,000,000! for the Integers.
If very large exact factorials are needed, they can be computed using bignum arithmetic. In such computations speed may be gained[citation needed] by not sequentially multiplying the numbers up to (or down from) n into a single accumulator, but by partitioning the sequence so that the products for each of the two parts are approximately of the same size, compute those products recursively and then multiply.
The asymptotically best efficiency is obtained by computing n! from its prime factorization. As documented by Peter Borwein, prime factorization allows n! to be computed in time O(n(log n log log n)2), provided that a fast multiplication algorithm is used (for example, the Schönhage–Strassen algorithm).[4] Peter Luschny presents source code and benchmarks for several efficient factorial algorithms, with or without the use of a prime sieve.[5]
<source lang='cpp'> int Maths::factorial(int argument){
int value = 1; // use this value for arguments <= 1
for (int i=argument; i>1; i--)
{
value *= i;
}
return value;
} </source>
Main article:
Gamma function
The factorial function, generalized to all real numbers except negative integers. For example, 0! = 1! = 1, (−0.5)! = √
π, (0.5)! = √
π/2.
Besides nonnegative integers, the factorial function can also be defined for non-integer values, but this requires more advanced tools from mathematical analysis. One function that "fills in" the values of the factorial (but with a shift of 1 in the argument) is called the Gamma function, denoted Γ(z), defined for all complex numbers z except the non-positive integers, and given when the real part of z is positive by
- Failed to parse (Missing texvc executable; please see math/README to configure.): \Gamma(z)=\int_0^\infty t^{z-1} e^{-t}\, \mathrm{d}t. \!
Its relation to the factorials is that for any natural number n
- Failed to parse (Missing texvc executable; please see math/README to configure.): n!=\Gamma(n+1).\,
Euler's original formula for the Gamma function was
- Failed to parse (Missing texvc executable; please see math/README to configure.): \Gamma(z)=\lim_{n\to\infty}\frac{n^zn!}{\displaystyle\prod_{k=0}^n (z+k)}. \!
It is worth mentioning that there is an alternative notation that was originally introduced by Gauss which is sometimes used. The Pi function, denoted Π(z) for real numbers z no less than 0, is defined by
- Failed to parse (Missing texvc executable; please see math/README to configure.): \Pi(z)=\int_0^\infty t^{z} e^{-t}\, \mathrm{d}t\,.
In terms of the Gamma function it is
- Failed to parse (Missing texvc executable; please see math/README to configure.): \Pi(z) = \Gamma(z+1) \,.
It truly extends the factorial in that
- Failed to parse (Missing texvc executable; please see math/README to configure.): \Pi(n) = n!\text{ for }n \in \mathbf{N}\, .
In addition to this, the Pi function satisfies the same recurrence as factorials do, but at every complex value z where it is defined
- Failed to parse (Missing texvc executable; please see math/README to configure.): \Pi(z) = z\Pi(z-1)\,.
In fact, this is no longer a recurrence relation but a functional equation. Expressed in terms of the Gamma function this functional equation takes the form
- Failed to parse (Missing texvc executable; please see math/README to configure.): \Gamma(n+1)=n\Gamma(n)\,.
Since the factorial is extended by the Pi function, for every complex value z where it is defined, we can write:
- Failed to parse (Missing texvc executable; please see math/README to configure.): z! = \Pi(z)\,
The values of these functions at half-integer values is therefore determined by a single one of them; one has
- Failed to parse (Missing texvc executable; please see math/README to configure.): \Gamma\left (\frac{1}{2}\right )=\left (-\frac{1}{2}\right )!=\Pi\left (-\frac{1}{2}\right ) = \sqrt{\pi},
from which it follows that for n ∈ N,
- Failed to parse (Missing texvc executable; please see math/README to configure.): \Gamma\left (\frac{1}{2}+n\right ) = \left (-\frac{1}{2}+n\right )! = \Pi\left (-\frac{1}{2}+n\right ) = \sqrt{\pi} \prod_{k=1}^n {2k - 1 \over 2} = {(2n)! \over 4^n n!} \sqrt{\pi} = {(2n-1)! \over 2^{2n-1}(n-1)!} \sqrt{\pi}.
For example,
- Failed to parse (Missing texvc executable; please see math/README to configure.): \Gamma\left (4.5 \right ) = 3.5! = \Pi\left (3.5\right ) = {1\over 2}\cdot{3\over 2}\cdot{5\over 2}\cdot{7\over 2} \sqrt{\pi} = {8! \over 4^4 4!} \sqrt{\pi} = {7! \over 2^7 3!} \sqrt{\pi} = {105 \over 16} \sqrt{\pi} \approx 11.63.
It also follows that for n ∈ N,
- Failed to parse (Missing texvc executable; please see math/README to configure.): \Gamma\left (\frac{1}{2}-n\right ) = \left (-\frac{1}{2}-n\right )! = \Pi\left (-\frac{1}{2}-n\right ) = \sqrt{\pi} \prod_{k=1}^n {2 \over 1 - 2k} = {(-4)^n n! \over (2n)!} \sqrt{\pi}.
For example,
- Failed to parse (Missing texvc executable; please see math/README to configure.): \Gamma\left (-2.5 \right ) = (-3.5)! = \Pi\left (-3.5\right ) = {2\over -1}\cdot{2\over -3}\cdot{2\over -5} \sqrt{\pi} = {(-4)^3 3! \over 6!} \sqrt{\pi} = -{8 \over 15} \sqrt{\pi} \approx -0.9453.
The Pi function is certainly not the only way to extend factorials to a function defined at almost all complex values, and not even the only one that is analytic wherever it is defined. Nonetheless it is usually considered the most natural way to extend the values of the factorials to a complex function. For instance, the Bohr–Mollerup theorem states that the Gamma function is the only function that takes the value 1 at 1, satisfies the functional equation Γ(n + 1) = nΓ(n), is meromorphic on the complex numbers, and is log-convex on the positive real axis. A similar statement holds for the Pi function as well, using the Π(n) = nΠ(n − 1) functional equation.
However, there exist complex functions that are probably simpler in the sense of analytic function theory and which interpolate the factorial values. For example, Hadamard's 'Gamma'-function (Hadamard 1894) which, unlike the Gamma function, is an entire function.[6]
Euler also developed a convergent product approximation for the non-integer factorials, which can be seen to be equivalent to the formula for the Gamma function above:
- Failed to parse (Missing texvc executable; please see math/README to configure.): \begin{align}n! = \Pi(n) &= \prod_{k = 1}^\infty \left(\frac{k+1}{k}\right)^n\!\!\frac{k}{n+k} \\ &= \left[ \left(\frac{2}{1}\right)^n\frac{1}{n+1}\right]\left[ \left(\frac{3}{2}\right)^n\frac{2}{n+2}\right]\left[ \left(\frac{4}{3}\right)^n\frac{3}{n+3}\right]\cdots. \end{align}
However, this formula does not provide a practical means of computing the Pi or Gamma function, as its rate of convergence is slow.
The volume of an n-dimensional hypersphere of radius R is
- Failed to parse (Missing texvc executable; please see math/README to configure.): V_n=\frac{\pi^{n/2}}{\Gamma((n/2)+1)}R^n.
Amplitude and phase of factorial of complex argument.
Representation through the Gamma-function allows evaluation of factorial of complex argument. Equilines of amplitude and phase of factorial are shown in figure. Let Failed to parse (Missing texvc executable; please see math/README to configure.): \ f=\rho \exp({\rm i}\varphi)=(x+{\rm i}y)!=\Gamma(x+{\rm i}y+1) . Several levels of constant modulus (amplitude) Failed to parse (Missing texvc executable; please see math/README to configure.): \rho =\rm const
and constant phase Failed to parse (Missing texvc executable; please see math/README to configure.): \varphi=\rm const
are shown. The grid covers range
Failed to parse (Missing texvc executable; please see math/README to configure.): ~-3 \le x \le 3~ , Failed to parse (Missing texvc executable; please see math/README to configure.): ~-2 \le y \le 2~
with unit step. The scratched line shows the level Failed to parse (Missing texvc executable; please see math/README to configure.): \varphi=\pm \pi .
Thin lines show intermediate levels of constant modulus and constant phase. At poles Failed to parse (Missing texvc executable; please see math/README to configure.): x+ {\rm i}y \in \rm (negative ~ integers) , phase and amplitude are not defined. Equilines are dense in vicinity of singularities along negative integer values of the argument.
For Failed to parse (Missing texvc executable; please see math/README to configure.): |z|<1 , the Taylor expansions can be used:
- Failed to parse (Missing texvc executable; please see math/README to configure.): z!=\sum_{n=0}^{\infty} g_n z^n.
The first coefficients of this expansion are
Failed to parse (Missing texvc executable; please see math/README to configure.): n |
Failed to parse (Missing texvc executable; please see math/README to configure.): g_n |
approximation |
0 |
Failed to parse (Missing texvc executable; please see math/README to configure.): 1 |
Failed to parse (Missing texvc executable; please see math/README to configure.): 1 |
1 |
Failed to parse (Missing texvc executable; please see math/README to configure.): -\gamma |
Failed to parse (Missing texvc executable; please see math/README to configure.): - 0.5772156649 |
2 |
Failed to parse (Missing texvc executable; please see math/README to configure.): \frac{\pi^2}{12}+\frac{\gamma^2}{2} |
Failed to parse (Missing texvc executable; please see math/README to configure.): 0.9890559955 |
3 |
Failed to parse (Missing texvc executable; please see math/README to configure.): -\frac{\zeta(3)}{3}-\frac{\pi^2\gamma}{12}-\frac{\gamma^3}{6} |
Failed to parse (Missing texvc executable; please see math/README to configure.): -0.9074790760 |
where Failed to parse (Missing texvc executable; please see math/README to configure.): \gamma
is the Euler constant and Failed to parse (Missing texvc executable; please see math/README to configure.): \zeta
is the Riemann zeta function. Computer algebra systems such as Sage (mathematics software) can generate many terms of this expansion.
For the large values of the argument, factorial can be approximated through the integral of the digamma function, using the continued fraction representation. This approach is due to T. J. Stieltjes (1894). Writing z! = exp(P(z)) where P(z) is
- Failed to parse (Missing texvc executable; please see math/README to configure.): P(z) = p(z) + \log(2\pi)/2 - z + \left(z+\frac{1}{2}\right)\log(z),
Stieltjes gave a continued fraction for p(z)
- Failed to parse (Missing texvc executable; please see math/README to configure.): p(z)=\cfrac{a_0}{z+ \cfrac{a_1}{z+ \cfrac{a_2}{z+ \cfrac{a_3}{z+\ddots}}}}
The first few coefficients an are [7]
n |
an |
0 |
1 / 12 |
1 |
1 / 30 |
2 |
53 / 210 |
3 |
195 / 371 |
4 |
22999 / 22737 |
5 |
29944523 / 19733142 |
6 |
109535241009 / 48264275462 |
There is common misconception, that Failed to parse (Missing texvc executable; please see math/README to configure.): \displaystyle\log(z!)=P(z)
or Failed to parse (Missing texvc executable; please see math/README to configure.): \log(\Gamma(z\!+\!1))=P(z)
for any complex z ≠ 0. Indeed, the relation through the logarithm is valid only for specific range of values of z in vicinity of the real axis, while Failed to parse (Missing texvc executable; please see math/README to configure.): |\Im(\Gamma(z\!+\!1))| < \pi . The larger is the real part of the argument, the smaller should be the imaginary part. However, the inverse relation, z! = exp(P(z)), is valid for the whole complex plane apart from zero. The convergence is poor in vicinity of the negative part of the real axis. (It is difficult to have good convergence of any approximation in vicinity of the singularities). While Failed to parse (Missing texvc executable; please see math/README to configure.): |\Im(z)| >2
or Failed to parse (Missing texvc executable; please see math/README to configure.): \Re(z)>2
, the 6 coefficients above are sufficient for the evaluation of the factorial with the complex<double> precision. For higher precision more coefficients can be computed by a rational QD-scheme (H. Rutishauser's QD algorithm).[8]
The relation n ! = (n − 1)! × n allows one to compute the factorial for an integer given the factorial for a smaller integer. The relation can be inverted so that one can compute the factorial for an integer given the factorial for a larger integer:
- Failed to parse (Missing texvc executable; please see math/README to configure.): n! = \frac{(n+1)!}{n+1}.
Note, however, that this recursion does not permit us to compute the factorial of a negative integer; use of the formula to compute (−1)! would require a division by zero, and thus blocks us from computing a factorial value for every negative integer. (Similarly, the Gamma function is not defined for non-positive integers, though it is defined for all other complex numbers.)
There are several other integer sequences similar to the factorial that are used in mathematics:
The primorial (sequence A002110 in OEIS) is similar to the factorial, but with the product taken only over the prime numbers.
The product of all odd integers up to some odd positive integer n is often called the double factorial of n (even though it only involves about half the factors of the ordinary factorial, and its value is therefore closer to the square root of the factorial). It is denoted by n!!.
For an odd positive integer n = 2k - 1, k ≥ 1, it is
- Failed to parse (Missing texvc executable; please see math/README to configure.): (2k-1)!! = \prod_{i=1}^k (2i-1)
.
For example, 9!! = 1 × 3 × 5 × 7 × 9 = 945. This notation creates a notational ambiguity with the composition of the factorial function with itself (which for n > 2 gives much larger numbers than the double factorial); this may be justified by the fact that composition arises very seldom in practice, and could be denoted by (n!)! to circumvent the ambiguity. The double factorial notation is not essential; it can be expressed in terms of the ordinary factorial by
- Failed to parse (Missing texvc executable; please see math/README to configure.): (2k-1)!!=\frac{(2k)!}{k!2^k}
,
since the denominator equals Failed to parse (Missing texvc executable; please see math/README to configure.): \displaystyle\prod_{i=1}^k 2i
and cancels the unwanted even factors from the numerator. The introduction of the double factorial is motivated by the fact that it occurs rather frequently in combinatorial and other settings, for instance
- (2n − 1)!! is the number of permutations of 2n whose cycle type consists of n parts equal to 2; these are the involutions without fixed points.
- (2n − 1)!! is the number of perfect matchings in a complete graph K(2n).
- (2n − 5)!! is the number of unrooted binary trees with n labeled leaves.
- The value Failed to parse (Missing texvc executable; please see math/README to configure.): \textstyle\Gamma(n+\frac12)
is equal to Failed to parse (Missing texvc executable; please see math/README to configure.): \textstyle\frac{(2n-1)!!}{2^n}\sqrt\pi
(see above)
Sometimes n!! is defined for non-negative even numbers as well. One choice is a definition similar to the one for odd values
- Failed to parse (Missing texvc executable; please see math/README to configure.): (2k)!!= \prod_{i=1}^k (2i) = k!2^k
For example, with this definition, 8!! = 2 × 4 × 6 × 8 = 384. However, note that this definition does not match the expression above, of the double factorial in terms of the ordinary factorial, and is also inconsistent with the extension of the definition of Failed to parse (Missing texvc executable; please see math/README to configure.): n!!
to complex numbers Failed to parse (Missing texvc executable; please see math/README to configure.): n
that is achieved via the Gamma function as indicated below. Also, for even numbers, the double factorial notation is hardly shorter than expressing the same value using ordinary factorials. For combinatorial interpretations (the value gives, for instance, the size of the hyperoctahedral group), the latter expression can be more informative (because the factor 2n is the order of the kernel of a projection to the symmetric group). Even though the formulas for the odd and even double factorials can be easily combined into
- Failed to parse (Missing texvc executable; please see math/README to configure.): n!!=\prod_{i;~0\leq 2i<n}(n-2i),
the only known interpretation for the sequence of all these numbers (sequence A006882 in OEIS) is somewhat artificial: the number of down-up permutations of a set of n + 1 elements for which the entries in the even positions are increasing.
The sequence of double factorials for n = 1, 3, 5, 7, ... (sequence A001147 in OEIS) starts as
- 1, 3, 15, 105, 945, 10395, 135135, ....
Some identities involving double factorials are:
- Failed to parse (Missing texvc executable; please see math/README to configure.): (2n+1)!! = {(2n+1)! \over 2^n n!} = 2^n n! {n+\frac 1 2 \choose n} = (-2)^{n+1} (n+1)! {-\frac 1 2 \choose n+1}.
- Failed to parse (Missing texvc executable; please see math/README to configure.): (2n-1)!! = {(2n)! \over 2^n n!} = 2^n n! {n-\frac 1 2 \choose n} = (-2)^n n! {-\frac 1 2 \choose n}.
Disregarding the above definition of n!! for even values of n, the double factorial for odd integers can be extended to most real and complex numbers z by noting that when z is a positive odd integer then
- Failed to parse (Missing texvc executable; please see math/README to configure.): z!! = z(z-2)\cdots (3) = 2^{(z-1)/2}\left(\frac{z}{2}\right)\left(\frac{z-2}{2}\right)\cdots \left(\frac{3}{2}\right) = 2^{(z-1)/2} \frac{\Gamma\left(\frac{z}{2}+1\right)}{\Gamma\left(\frac{1}{2}+1\right)} = \sqrt{\frac{2^{z+1}}{\pi}} \Gamma\left(\frac{z}{2}+1\right)\,.
The expressions obtained by taking one of the above formulas for Failed to parse (Missing texvc executable; please see math/README to configure.): (2n+1)!!
and Failed to parse (Missing texvc executable; please see math/README to configure.): (2n-1)!!
and expressing the occurring factorials in terms of the gamma function can both be seen (using the multiplication theorem) to be equivalent to the one given here.
The expression found for z!! is defined for all complex numbers except the negative even numbers. Using it as the definition, the volume of an n-dimensional hypersphere of radius R can be expressed as
- Failed to parse (Missing texvc executable; please see math/README to configure.): V_n=\frac{2 (2\pi)^{(n-1)/2}}{n!!} R^n.
A common related notation is to use multiple exclamation points to denote a multifactorial, the product of integers in steps of two (Failed to parse (Missing texvc executable; please see math/README to configure.): n!! ), three (Failed to parse (Missing texvc executable; please see math/README to configure.): n!!! ), or more. The double factorial is the most commonly used variant, but one can similarly define the triple factorial (Failed to parse (Missing texvc executable; please see math/README to configure.): n!!! ) and so on. One can define the k-th factorial, denoted by Failed to parse (Missing texvc executable; please see math/README to configure.): n!^{(k)} , recursively for non-negative integers as
- Failed to parse (Missing texvc executable; please see math/README to configure.): n!^{(k)}= \left\{ \begin{matrix} 1,\qquad\qquad\ &&\mbox{if }0\le n<k, \\ n((n-k)!^{(k)}),&&\mbox{if }n\ge k\,,\quad\ \ \, \end{matrix} \right.
though see the alternative definition below.
Some mathematicians have suggested an alternative notation of Failed to parse (Missing texvc executable; please see math/README to configure.): n!_2
for the double factorial and similarly Failed to parse (Missing texvc executable; please see math/README to configure.): n!_k
for other multifactorials, but this has not come into general use.
With the above definition, Failed to parse (Missing texvc executable; please see math/README to configure.): (kn)!^{(k)}=k^n n!.
In the same way that Failed to parse (Missing texvc executable; please see math/README to configure.): n!
is not defined for negative integers, and Failed to parse (Missing texvc executable; please see math/README to configure.): n!!
is not defined for negative even integers, Failed to parse (Missing texvc executable; please see math/README to configure.): n!^{(k)}
is not defined for negative integers evenly divisible by Failed to parse (Missing texvc executable; please see math/README to configure.): k
.
Alternatively, the multifactorial z!(k) can be extended to most real and complex numbers z by noting that when z is one more than a positive multiple of k then
- Failed to parse (Missing texvc executable; please see math/README to configure.): z!^{(k)} = z(z-k)\cdots (k+1) = k^{(z-1)/k}\left(\frac{z}{k}\right)\left(\frac{z-k}{k}\right)\cdots \left(\frac{k+1}{k}\right) = k^{(z-1)/k} \frac{\Gamma\left(\frac{z}{k}+1\right)}{\Gamma\left(\frac{1}{k}+1\right)}\,.
This last expression is defined much more broadly than the original; with this definition, z!(k) is defined for all complex numbers except the negative real numbers evenly divisible by k. This definition is consistent with the earlier definition only for those integers z satisfying z ≡ 1 mod k.
In addition to extending z!(k) to most complex numbers z, this definition has the feature of working for all positive real values of k. Furthermore, when k = 1, this definition is mathematically equivalent to the Π(z) function, described above. Also, when k = 2, this definition is mathematically equivalent to the alternative extension of the double factorial, described above.
The so-called quadruple factorial, however, is not the multifactorial n!(4); it is a much larger number given by (2n)!/n!, starting as
- 1, 2, 12, 120, 1680, 30240, 665280, ... (sequence A001813 in OEIS).
It is also equal to
- Failed to parse (Missing texvc executable; please see math/README to configure.): \begin{align} 2^n\frac{(2n)!}{n!2^n} & = 2^n \frac{(2\cdot 4\cdots 2n) (1\cdot 3\cdots (2n-1))}{2\cdot 4\cdots 2n} \\[8pt] & = (1\cdot 2)\cdot (3 \cdot 2) \cdots((2n-1)\cdot 2)=(4n-2)!^{(4)}. \end{align}
Main article:
Large numbers
Neil Sloane and Simon Plouffe defined a superfactorial in The Encyclopedia of Integer Sequences (Academic Press, 1995) to be the product of the first Failed to parse (Missing texvc executable; please see math/README to configure.): n
factorials. So the superfactorial of 4 is
- Failed to parse (Missing texvc executable; please see math/README to configure.): \mathrm{sf}(4)=1! \times 2! \times 3! \times 4!=288. \,
In general
- Failed to parse (Missing texvc executable; please see math/README to configure.): \mathrm{sf}(n) =\prod_{k=1}^n k! =\prod_{k=1}^n k^{n-k+1} =1^n\cdot2^{n-1}\cdot3^{n-2}\cdots(n-1)^2\cdot n^1.
Equivalently, the superfactorial is given by the formula
- Failed to parse (Missing texvc executable; please see math/README to configure.): \mathrm{sf}(n) =\prod_{0 \le i < j \le n} (j-i)
which is the determinant of a Vandermonde matrix.
The sequence of superfactorials starts (from Failed to parse (Missing texvc executable; please see math/README to configure.): n = 0 ) as
- 1, 1, 2, 12, 288, 34560, 24883200, 125411328000, ... (sequence A000178 in OEIS)
Clifford Pickover in his 1995 book Keys to Infinity used a new notation, n$, to define the superfactorial
- Failed to parse (Missing texvc executable; please see math/README to configure.): n\$\equiv \begin{matrix} \underbrace{ n!^{{n!}^{{\cdot}^{{\cdot}^{{\cdot}^{n!}}}}}} \\ n! \end{matrix}, \,
or as,
- Failed to parse (Missing texvc executable; please see math/README to configure.): n\$=n!^{(4)}n! \,
where the (4) notation denotes the hyper4 operator, or using Knuth's up-arrow notation,
- Failed to parse (Missing texvc executable; please see math/README to configure.): n\$=(n!)\uparrow\uparrow(n!). \,
This sequence of superfactorials starts:
- Failed to parse (Missing texvc executable; please see math/README to configure.): 1\$=1 \,
- Failed to parse (Missing texvc executable; please see math/README to configure.): 2\$=2^2=4 \,
- Failed to parse (Missing texvc executable; please see math/README to configure.): 3\$=6\uparrow\uparrow6={^6}6=6^{6^{6^{6^{6^6}}}}.
Here, as is usual for compound exponentiation, the grouping is understood to be from right to left:
- Failed to parse (Missing texvc executable; please see math/README to configure.): a^{b^c}=a^{(b^c)}.\,
Occasionally the hyperfactorial of n is considered. It is written as H(n) and defined by
- Failed to parse (Missing texvc executable; please see math/README to configure.): H(n) =\prod_{k=1}^n k^k =1^1\cdot2^2\cdot3^3\cdots(n-1)^{n-1}\cdot n^n.
For n = 1, 2, 3, 4, ... the values H(n) are 1, 4, 108, 27648,... (sequence A002109 in OEIS).
The asymptotic growth rate is
- Failed to parse (Missing texvc executable; please see math/README to configure.): H(n) \sim A n^{(6n^2 + 6n + 1)/12} e^{-n^2/4}
where A = 1.2824... is the Glaisher–Kinkelin constant.[9] H(14) = 1.8474...×1099 is already almost equal to a googol, and H(15) = 8.0896...×10116 is almost of the same magnitude as the Shannon number, the theoretical number of possible chess games. Compared to the Pickover definition of the superfactorial, the hyperfactorial grows relatively slowly.
The hyperfactorial function can be generalized to complex numbers in a similar way as the factorial function. The resulting function is called the K-function.
- ^ Ronald L. Graham, Donald E. Knuth, Oren Patashnik (1988) Concrete Mathematics, Addison-Wesley, Reading MA. ISBN 0-201-14236-8, p. 111
- ^ N. L. Biggs, The roots of combinatorics, Historia Math. 6 (1979) 109−136
- ^ Higgins, Peter (2008), Number Story: From Counting to Cryptography, New York: Copernicus, p. 12, ISBN 978-1-84800-000-1 says Krempe though.
- ^ Peter Borwein. "On the Complexity of Calculating Factorials". Journal of Algorithms 6, 376–380 (1985)
- ^ Peter Luschny, Fast-Factorial-Functions: The Homepage of Factorial Algorithms.
- ^ Peter Luschny, Hadamard versus Euler - Who found the better Gamma function?.
- ^ Digital Library of Mathematical Functions, http://dlmf.nist.gov/5.10
- ^ Peter Luschny, On Stieltjes' Continued Fraction for the Gamma Function..
- ^ Weisstein, Eric W., "Glaisher–Kinkelin Constant" from MathWorld.
- Hadamard, M. J. (1894) (in French), Sur L’Expression Du Produit 1·2·3· · · · ·(n−1) Par Une Fonction Entière, OEuvres de Jacques Hadamard, Centre National de la Recherche Scientifiques, Paris, 1968, http://www.luschny.de/math/factorial/hadamard/HadamardFactorial.pdf
- Ramanujan, Srinivasa (1988), The lost notebook and other unpublished papers, Springer Berlin, p. 339, ISBN 3-540-18726-X