为了提高比较字符串的函数的性能,我决定通过比较它们的哈希值来比较它们。
那么,如果两个非常长的字符串的哈希值彼此相等,那么是否可以保证这些字符串也彼此相等?
虽然可以保证 2 个相同的字符串会给您相同的哈希值,但反之则不然:对于给定的哈希值,总是有几个可能的字符串产生相同的哈希值。
这是真的,因为鸽巢原理.
话虽这么说,两个不同的字符串产生相同散列的机会可以变得无限小,以至于被认为相当于 null。
这种哈希的一个相当经典的例子是MD5,具有近乎完美的 128 位分布。这意味着 2^128 中有一次机会 2 个不同的字符串产生相同的哈希值。好吧,基本上,几乎和不可能一样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)