re: hash初步 春秋十二月 2011-11-20 14:00
對于關鍵字為字符串類型的散列函數,其本質和整數模散列差不多,對7位acsii碼的字符串,先把它轉到對應的整數,比如"abcd",對應的整數為97*128^3+98*128^2+99*128^1+100(128為基數),考慮到字符串長度,上面的公式計算的結果可能會溢出,因此根據mod函數的性質及霍納算法,可以改進為:((((((97%M)*128+98)%M)*128+99)%M)*128+100)%M,你的strhash實現是累加求和,131為因子,最終結果再取31位而得散列值,而131、31都是素數,素數有處于減少沖突。