Tool to compute subfactorial. Subfactorial !n is the number of derangements of n objects, i.e. the number of permutations of n objects in order that no object stands in its original position.
Subfactorial - dCode
Tag(s) : Arithmetics
dCode is free and its tools are a valuable help in games, maths, geocaching, puzzles and problems to solve every day!
A suggestion ? a feedback ? a bug ? an idea ? Write to dCode!
SubFactorial $ n $ is calculated using this formula: $$ !n = n! \sum_{k=0}^n \frac {(-1)^k}{k!} $$
Example: $$ \begin{align} !4 &= 4! ( \frac{(-1)^0}{0!} + \frac{(-1)^1}{1!} + \frac{(-1)^2}{2!} + \frac{(-1)^3}{3!} + \frac{(-1)^4}{4!} ) \\ &= 4! \times ( 1/1 - 1/1 + 1/2 - 1/6 + 1/24 ) \\ &= 24 \times 9/24 \\ &= 9 \end{align} $$
This formula is also used: $$ !n = \left [ \frac {n!}{e} \right ] $$ where brackets [] stands for rounding to the closest integer.
Example: $ 4! / e \approx 24/2.718 \approx 8.829 \Rightarrow !4 = 9 $
And a recurrence relationship : $$ !n = n \times !(n-1) + (-1)^n $$
The first values for the first natural numbers are:
!1 = 0 |
!2 = 1 |
!3 = 2 |
!4 = 9 |
!5 = 44 |
!6 = 265 |
!7 = 1854 |
!8 = 14833 |
!9 = 133496 |
!10 = 1334961 |
The subfactorial as the factorial, uses the exclamation mark as symbol but it is written to the left of the number: $ !n $
By convention, postfixed operators have priority (the calculation goes first) over prefixed, so factorial (postfixed) has priority over subfactorial (prefixed)
Example: $ !3! = !(3!) $
Derangements (or Rencontres) are permutations without the one with fixed points (no item is in its original place). The number of derangements for $ n $ elements is subfactorial of $ n $: $ !n $.
Example: The $ !4 = 9 $ derangements of {1,2,3,4} are {2,1,4,3}, {2,3,4,1}, {2,4,1,3}, {3,1,4,2}, {3,4,1,2}, {3,4,2,1}, {4,1,2,3}, {4,3,1,2}, and {4,3,2,1}.
dCode retains ownership of the "Subfactorial" source code. Except explicit open source licence (indicated Creative Commons / free), the "Subfactorial" algorithm, the applet or snippet (converter, solver, encryption / decryption, encoding / decoding, ciphering / deciphering, breaker, translator), or the "Subfactorial" functions (calculate, convert, solve, decrypt / encrypt, decipher / cipher, decode / encode, translate) written in any informatic language (Python, Java, PHP, C#, Javascript, Matlab, etc.) and all data download, script, or API access for "Subfactorial" are not public, same for offline use on PC, mobile, tablet, iPhone or Android app!
Reminder : dCode is free to use.
The copy-paste of the page "Subfactorial" or any of its results, is allowed (even for commercial purposes) as long as you credit dCode!
Exporting results as a .csv or .txt file is free by clicking on the export icon
Cite as source (bibliography):
Subfactorial on dCode.fr [online website], retrieved on 2024-12-30,