Tool to calculate the Cantor expansion of a number (sum of factorial), thanks to its representation in factorial base.
Cantor Expansion - 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!
The Cantor Expansion of a natural number $ n $ is a sum of the form $$ n = (k_m)m! + (k_{m-1})(m-1)! + \cdots + k_{2}2! + k_{1}1! $$ with integers $ k_i $ such as $ 0 \leq k_i \leq i $
Example: 12 = 2*3! + 0*2! + 0*1!
This is the explicit sum of the factor base of the number $ n $.
Start by converting the number to a factorial basis (by performing successive divisions of $ n $ by $ i $ for the numbers from $ 1 $ to $ n $, as long as the quotient of the Euclidean division is non-zero) and add figures (in factorial basis) obtained by multiplying them by the corresponding factorial.
Example: In base 10, $ 123 $ can be decomposed as $ 1 \times 100 + 2 \times 10 + 3 \times 1 $
Example: In factorial base, $ 234_{10} = 14300_{!} = 1 \times 5! + 4 \times 4! + 3 \times 3! + 0 \times 2! + 0*1! $
To code the conversion of a decimal number into a factorial base, here is an algorithm function decimal2cantor(x) {
n = 1
a = []
while (x != 0) {
a[n] = x mod (n+1)
x = (x-a[n])/(n+1)
n++
}
return a[n]
}
Cantor's expansion can be deduced by a[n]*n! + a[n−1]*(n-1)! + ... + a[2]*2! + a[1]*1!
To code the conversion of a number written in factorial base into a decimal number, here is an algorithm:function cantor2decimal(a[n]) {
x = 0
for i=n to 1 {
x = x + a[i]
x = i*x
}
return x
}
dCode retains ownership of the "Cantor Expansion" source code. Any algorithm for the "Cantor Expansion" algorithm, applet or snippet or script (converter, solver, encryption / decryption, encoding / decoding, ciphering / deciphering, breaker, translator), or any "Cantor Expansion" functions (calculate, convert, solve, decrypt / encrypt, decipher / cipher, decode / encode, translate) written in any informatic language (Python, Java, PHP, C#, Javascript, Matlab, etc.) or any database download or API access for "Cantor Expansion" or any other element are not public (except explicit open source licence like Creative Commons). Same with the download for offline use on PC, mobile, tablet, iPhone or Android app.
Reminder: dCode is an educational and teaching resource, accessible online for free and for everyone.
The content of the page "Cantor Expansion" and its results may be freely copied and reused, including for commercial purposes, provided that dCode.fr is cited as the source.
Exporting the results is free and can be done simply by clicking on the export icons ⤓ (.csv or .txt format) or ⧉ (copy and paste).
To cite dCode.fr on another website, use the link:
In a scientific article or book, the recommended bibliographic citation is: Cantor Expansion on dCode.fr [online website], retrieved on 2025-04-16,