这道题的意思是,串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无关,所以字符串中字符的任意排列,对结果没有影响。