可逆折叠功能



我有一组大小可变的数字(以数字字符串形式生成(,我想将它们存储在一个哈希表中,该哈希表具有作为键和值的无符号32位整数。当然,要散列的键和值可能更大(甚至大于64位(,所以在插入它们之前,我需要进行某种折叠以减小它们的大小。然而,我不知道有任何可逆的折叠钥匙的方法——我想过哈希,但这通常是不可逆的。为了检索原始值,可以使用哪些简单的函数将长字符串转换为短字符串,反之亦然?

以可逆方式将64位值映射到32位值是不可能的。只有4294967296个可能的32位值,但表中可能有4294967297不同的64位值。然后,它们中的两个必须是相同的(这被称为鸽子洞原理(,并且当你反转时,相同的值必须映射到两个不同的64位值

最新更新