public long Ghash(char[] h) { long hash = 0; for (int i = 0; i < h.Length; i++) { hash = Convert.ToInt64( hash * 31 + h[i]); } return hash; }
你这样比较容易溢出。当h比较长的时候。hash函数无所谓对错,只要满足,相同的输入,输出相同,不同的输入,结果可以相同也可以不同,但是最好不同,就可以了。