看了Wiki里面的一个hash代码,试了一下发现很容易发生碰撞例如"daming" 和 "kuking"这两个的Hash值就是一样的这个是怎么回事情?
unsigned long 『More』
我觉得单个冲突的案例说明不了什么太多问题,尤其这个 hash 函数的目标是计算速度。有更详尽的测试吗?"比如一个比较大规模的字典里冲突的概率有多少" 这个特例下,如果把 (h<<5)+(h>>2) 改成 (h<<5)^(h>>2) 就可以避免冲突,但是算法本身并不能减少冲突的概率。
ps. wiki 也可以留言,只需要注册一下。