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 online 'Cantor Expansion' tool source code. Except explicit open source licence (indicated CC / Creative Commons / free), any 'Cantor Expansion' algorithm, applet or snippet (converter, solver, encryption / decryption, encoding / decoding, ciphering / deciphering, translator), or any 'Cantor Expansion' function (calculate, convert, solve, decrypt / encrypt, decipher / cipher, decode / encode, translate) written in any informatic language (Python, Java, PHP, C#, Javascript, Matlab, etc.) and no data download, script, copy-paste, or API access for 'Cantor Expansion' will be for free, same for offline use on PC, tablet, iPhone or Android ! dCode is free and online.

Please, check our dCode Discord community for help requests!

NB: for encrypted messages, test our automatic cipher identifier!

cantor,expansion,factorial,base,sum,sequence,expand

Source : https://www.dcode.fr/cantor-expansion

© 2021 dCode — The ultimate 'toolkit' to solve every games / riddles / geocaching / CTF.

Feedback

▲
Thanks to your feedback and relevant comments, dCode has developed the best 'Cantor Expansion' tool, so feel free to write! Thank you!