给定一个随机整数,例如19357982357627685397198。如何将这些数字压缩为字符数较少的文本字符串?
文本字符串只能包含数字或字母字符(大写和小写)。
我尝试过声称可以压缩的 Base64 和 Huffman 编码,但在键盘上书写时,它们都没有使字符串更短。
我还尝试制作某种算法,尝试将整数除以数字“2,3,...,10”,并检查结果中的最后一个数字是否是它被除以的数字(在中查找 0)除以 10 的情况)。因此,解密时,只需将数字乘以整数中的最后一个数字即可。但这不起作用,因为在某些情况下,你不能除以任何东西,并且数字将保持不变,并且当它被解密时,它只会将其乘以比你开始时更大的数字。
我还尝试将整数分成从左开始的 2 个数字块,并给它们一个字母(a =1,b =2,o =15),当它到达z时,它只会回滚到a。这不起作用,因为当它被解密时,它不知道数字滚动了z多少次,因此比开始时的数字要小得多。
我还尝试了一些其他常见的加密策略。例如 Base32、Ascii85、Bifid Cipher、Baudot Code 以及其他一些我不记得了。
这似乎是一个无法解决的问题。但由于它以整数开头,因此每个数字可以包含 10 种不同的组合。在字母表中,字母可以包含 26 种不同的组合。这使得您可以用 5 个字母存储比用 5 位整数存储的数据更多的数据。因此,用数学方法可以在字符串中存储比整数更多的数据,但我只是找不到任何人曾经这样做过。