GUID是一个23个字符的字符串,在JVM、机器、线程、进程等中都是唯一的。其哈希代码是根据Java String哈希代码定义计算的:http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#hashCode%28%29
如何计算哈希代码为奇数或偶数的概率?
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
edit只要重读你的问题,并意识到你所要求的是概率。概率为50/50(假设字符集中50%的字符对应于偶数整数)。没有关于字符串的信息将帮助您获得更好的概率估计,因为奇数/偶数对更改单个项过于敏感。