この人の「某有名検索会社での」インタビュー記事を読んでいました。
http://asserttrue.blogspot.com/2009/05/one-of-toughest-job-interview-questions.html
彼はある質問を受け、それがハッシュ テーブルの実装につながりました。彼は次のように述べています。
HASH = INITIAL_VALUE;
FOR EACH ( CHAR IN WORD ) {
HASH *= MAGIC_NUMBER
HASH ^= CHAR
HASH %= BOUNDS
}
RETURN HASH
ハッシュ テーブルの配列の長さは素数でなければならず、BOUNDS の数はテーブルの長さよりも小さいが、テーブルの長さと互いに素であることを説明しました。
BOUNDS 数がバケット数よりも小さいのはなぜですか? テーブルの長さが互いに素であることは何をしますか? BOUNDS と互いに素であるべきではありませんか?