我在这里看到了说明使用 gperf 的答案,但是,我更愿意根据我为 strings
域创建的证明来推出自己的答案固定长度为 <= 200
根据我从 wolfram 得到的计算,我得到 ~7.9 x 10^374
总排列。因此我的思路是如果我有一个 2048
位哈希函数 ( 3.2 x 10^616
) 我应该能够处理我需要处理的整个字符串域。我的问题是,鉴于所有长度为 200 或更短的字符串的宇宙约束,我如何证明我最终生成的哈希实现是完美的?
最佳答案
长度为 200 个字符的字符串只有 200 * 8 = 1600 位。如果 2048 位散列适合您的目的,您可以只使用字符串位作为完美散列。身份哈希函数是完美的,因为它将每个输入映射到不同的哈希值(显然,因为没有映射)。
关于algorithm - 在固定长度的输入上证明完美的哈希函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10799175/