почему используется простое число в hash функцпии?
От: Аноним  
Дата: 12.01.11 23:20
Оценка:
Добрый день, вы не могли бы на пальцах объяснить почему в функции для нахождения hash, пример для String:


int hash = 0;
for (char ch : str.toCharArray()) {
hash = hash * 31 + ch;
}

нужно использовать простое число (31 в нашем случае)
точнее, я догадываюсь, что так как используется не операция нахождения остатка после деления hash на длину hash таблицы, а битовая маска. т.к. эта операция эффективнее
меня интересует именно, почему простое число должно использоваться.
с битами не оч. силен, если можно в примере покажите...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.