字符串GUID的哈希码是奇数还是偶数的概率是多少?

时间:2012-03-20 14:19:11

标签: java guid probability hashcode

GUID是一个23个字符的字符串,在JVM,机器,线程,进程等方面是唯一的。 其哈希码根据Java String哈希码定义计算: http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#hashCode%28%29

如何计算哈希码奇数或偶数的概率?

1 个答案:

答案 0 :(得分:1)

31^x对于所有x都是奇数,因此唯一可以改变每个项的奇数/均匀度的位是s[i]。所以你需要知道s[i]每个术语,因为只改变其中一个从奇数到偶数将改变结果的奇数/偶数。所以我认为最小的计算是:

s[0] + ... + s[n-1] // if odd, the hash will be odd, if even the hash will be even

编辑只是重新阅读你的问题,并意识到你要求的是概率。概率为50/50(假设字符集中50%的字符对应于偶数整数)。没有关于字符串的信息将帮助您获得更好的概率估计,因为奇数/偶数对于更改单个术语过于敏感。