是否有任何散列技术会为两个字符串散列相同的值而且几乎没有错配?例如,我有两个字符串abcdabcdabcd
和aacdabcdabcd
。我想使用一个哈希函数,它可以为上面两个字符串赋予相同的值。我试图使用metroHash
和murmerHash
,但我找不到解决上述问题的方法。
答案 0 :(得分:0)
我挑战你的问题:
想象一下,我有像7.3和8.5这样的双重值,我希望它们具有相同的哈希值。你会立即询问9.1然后是10.0然后是10.4然后10.8等等也应该得到相同的哈希值,不是吗?因为9.1接近8.5,8.5接近7.3。
所以对于数字你会分成[0; 1 [,[1; 2 [等等,并为每个分区分配相同的哈希值。分区字符串的模拟方法是什么?
因此,您必须找到可能由表示符定义的不同区域,然后根据最近的表示符生成哈希值。您可以选择表示符“”,“a”,“aa”,“aaa”等等,并将NEXT表示符的一些哈希值返回到给定值,其中NEXT可以由Levenshtein距离或仅仅字符串定义长度。
总而言之,我猜你是在错误的轨道上,应该首先解释你原来的问题。散列并不意味着计算任何有意义的集群地址或值的分区号。