[Mew-dist 09778] Re: hash on Emacs (toward threading)

Shigeya Suzuki shigeya at example.com
1999年 7月 20日 (火) 00:18:23 JST


ごとうさんが、すでに書かれていますが、一応…

>>>>> "shigeya" == Shigeya Suzuki <shigeya at example.com> writes:

shigeya> 結局、hash のキーに当たる値から、キーにhash関数を適用したときに、適当
shigeya> に値が分散するようなhash関数が良いわけで、むやみにbucket sizeを多くし
shigeya> ても、hash関数自体が対応するものでなければ意味無いでしょう。適度にばら
shigeya> けていて、かつ、範囲がコンパクトな方が良いでしょう。

一つ言い忘れていた…

hash関数に対して適当でない bucket size を選ぶと、使われるbucket が片寄
るので、かえって逆効果のこともあります。

prime選ぶのが基本だったと思うけれど、先の関数だと、大きい prime を 
bucket sizeに選ぶと、短い文字列の場合に片寄る可能性がある。1511 だと2〜
3文字あれば、うまくバラける。なので、genericな文字列としては、わりと適
切な値な気がするなぁ。

shigeya



Mew-dist メーリングリストの案内