算法导论 练习题 11.3-3

来源:互联网 发布:淘宝直通车关键词查询 编辑:程序博客网 时间:2024/06/05 05:13

这道题的意思是,串S里的所有字符,任意变换位置后,用该函数计算出的散列值仍然相同。

其实和上一题一样,还是利用了mod的性质

h(x)=(∑S(i)*[2p mod (2p-1)]ti) mod (2p-1)

       =(∑S(i)*1ti) mod (2p-1)

      =(∑S(i)) mod (2p-1)

其中S(i)代表字符串中第i个字符的ascii码

ti代表该字符计算字符串值的时候处于第ti位

本来ti应该等于i-1的,例如字符串"mystr"中的m,按照从右向左的顺序,是S(5),计算中,应该是S(5)*24,但这里为了证明最终结果和字符位置无关,所以写做ti

通过最后的结果,可以看出与ti无关,所以字符串中字符的任意排列,对结果没有影响。

0 0