我正在编写一个实用程序类,它将字符串从一种字母表转换为另一种字母表,这在您希望使用目标字母表且限制可用字符数的情况下非常有用。例如,如果您可以使用小写字母和数字,但只能使用 12 个字符,则可以压缩字母表中的时间戳01234567989 -:
into abcdefghijklmnopqrstuvwxyz01234567989
so 2010-10-29 13:14:00
可能会成为5hhyo9v8mk6avy
(19 个字符减少到 16 个)。
该类旨在在字母表之间来回转换,并计算可以安全地存储在给定特定字符数的目标字母表中的最长源字符串。
正在考虑通过 Google 代码发布它,但是我显然希望其他人找到它并使用它 - 因此问题是它叫什么。当您需要生成一定长度的唯一文件名,但想要保留一些纯文本时,我不得不在两个独立的项目(使用 Bloomberg 和专有系统)中使用这种方法,因此 GUID 不合适。
你的例子与字典编码器 http://en.wikipedia.org/wiki/Dictionary_coder具有固定的目标和源词典。另外值得一看的是斐波那契编码 http://en.wikipedia.org/wiki/Fibonacci_coding,它有一个固定的目标字典(可变长度位),其目标是可变的。
我认为这还取决于您的目标字母表具有固定宽度条目是否非常重要 - 如果您允许具有可变长度代码的固定字母表,您的压缩比将更接近您的熵!如果预先知道源字母分布,则静态哈夫曼树 http://en.wikipedia.org/wiki/Huffman_coding可以很容易地生成。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)