<分区>
我需要带有两个参数的简单散列函数,参数如下:
- a,b,c,d 是不同的字符串(大约 30 个字符)
- f(a,b) = f(b,a)
- f(a,c) ≠ f(a,d)
- f(c,b) ≠ f(d,b)
<分区>
我需要带有两个参数的简单散列函数,参数如下:
最佳答案
排序并连接两个参数(以确保f(a,b)
等于f(b,a)
)。因为只有两个项目需要排序结果将是 ab
或 ba
。
如果字符串具有 ab
可能等于 cd
的属性(例如 strong
+ hearted
和 strongheart
+ ed
) 您可能想通过在字符串前面添加以固定字节数编码的第一个字符串的长度来“加盐”。
然后对结果应用字符串散列。 There are numerous examples online .
请注意,不能保证两个不同的字符串不会产生相同的散列值,但好的散列算法会降低这种可能性。
关于algorithm - 哈希函数 f(a, b) = f(b,a),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39847048/