hashCode公式如何通过代码实现的?

来源:3-3 介绍Hash函数和性质

晓辉007

2022-07-21

图片描述
老师,你好!能否讲一下左边的代码和右边的公式的对应关系,没有看明白右边的公式是如何通过左边的代码实现的?谢谢

写回答

1回答

马里布

2022-07-21

同学你好,

在for遍历每一个字符的过程中,要计算 h=31h+char

i=0:  h=0+ch0

i=1: h=31*ch0+ch1

i=2: h=31^2*ch0 + 31*ch1 + ch2

i=3:  h=31^3*ch0+31^2*ch1 + 31*ch2 + ch3

...

i=n-1:  h=31^(n-1)*ch0 + 31^(n-2)*ch1 + 31^(n-3)*ch2 + ... + ch_n-1

也就是右边求和公式的展开形式。

0
2
马里布
回复
taoy
在java代码中,使用的是int类型描述hashcode,最大范围是2^32次方,超过最大值溢出则归0,相当于mod操作。因此在算法描述使用 mod 2^32 表达。
2022-09-05
共2条回复

人人都该懂密码学,通用密码学原理与应用实战

万物互联时代,更新你的安全保障能力

249 学习 · 26 问题

查看课程