【发布时间】:2011-10-11 23:30:02
【问题描述】:
所以我查看了哈希函数,发现给定 2 个相似的字符串,即使相差一位,结果也会是完全不同的哈希键。我实际上需要创建某种唯一的 id,它具有与相似输入非常相似的特性(将是数百万个字母数字字符串)。
例子:
- 两个相等的字符串必须具有相同的哈希值。
- 两个不同的字符串必须有不同的哈希值。
- 两个非常相似的不同字符串必须具有不同的哈希值,同时彼此之间的距离不会太远。
什么是实现这一目标的好方法?我正在使用 python。
【问题讨论】:
-
"两个不同的字符串必须有不同的哈希值。"这是不可能的,除非哈希比可能的最长字符串长。 “两个非常相似的不同字符串必须具有不同的哈希值,同时彼此之间的距离不会太远。”如果您不需要加密安全,您可以使用一些简化的散列函数版本。
-
使用原始字符串并存储某种形式的列文斯坦距离?
-
你能解释一下你想用这个做什么吗?可能有更好的方法来实现您的最终结果。
-
我不需要加密安全。当我说它们必须不同时,我的意思是尽可能不发生冲突。
-
我需要比较非同质数据(数字和字符串组合),可能会出现输入错误等错误