【发布时间】:2015-08-07 19:14:06
【问题描述】:
如何将一排整数压缩成更短的整数?
例如输入:'1 2 4 9 8 5 2 7 6 2 3 4' -> 算法 -> 输出:'X Y Z'
可以反过来取回吗? ('X Y Z' -> '1 2 4 9 8 5 2 7 6 2 3 4')
输入最多包含 12 位数字,仅限数字。输出可以是字母数字,最多应为 3-4 位。
提前致谢。
编辑:每个输入数字0-9;输出0-9a-Z
【问题讨论】:
-
Input contains 12 digits max?所以输入将包含最多 12 个数字,或者输入中的每个数字最多有 12 个数字? -
这 12 个数字中是否存在任何(已知)系统?他们遵循一个模式吗?你能生成它们吗?它们是随机的吗?它们代表什么?
-
@PhamTrung 输入最多包含 12 位数字;每个数字 0-9
-
@LasseV.Karlsen 没有系统;没有意义;数字是随机的。
-
那么阿米特已经发布了一个很好的答案:一般意义上是做不到的。压缩利用冗余或模式,如果两者都没有,则无法压缩。您可能碰巧有可以压缩的数据 some 但它会因数据集而异,而且您根本无法保证它会压缩到 3 甚至 11 个字节。这么说吧:如果你能找到一种方法,保证将非均匀随机数据从 12 个数字压缩到 3 个数字,注册一个专利,你就发财了!
标签: algorithm math integer compression