A pairing function is a function that reversibly maps two non-negative integers onto a single non-negative integer.
This package currently supports the following pairing functions:
- Szudzik pairing function
- Cantor pairing function
Simply:
$ pip install pairing-functions
from pairing_functions import cantor, szudzik
szudzik.pair(3, 4)
// 19
szudzik.unpair(19)
// (3, 4)
cantor.pair(3, 4)
// 32
cantor.unpair(32)
// (3, 4)
You can also work with more than 2 integers:
from pairing_functions import cantor, szudzik
szudzik.pair(1, 2, 3, 4)
// 1126
cantor.pair(1, 2, 3, 4)
// 2705
# by default, unpairing will result in two integers
szudzik.unpair(1126)
// (33, 4)
cantor.unpair(2705)
// (69, 4)
# but going back to the initial integers is also possible
# just specify how many integers you expect
szudzik.unpair(1126, n=4)
// (1, 2, 3, 4)
cantor.unpair(2705, n=4)
// (1, 2, 3, 4)
You can find more about pairing functions in the docs.
If you wish to contribute, you can start from here !
You can run the available tests with pytest - code coverage metrics are also available via pytest-cov.