почему используется простое число в hash функцпии?
От:
Аноним
Дата:
12.01.11 23:20
Оценка:
Добрый день, вы не могли бы на пальцах объяснить почему в функции для нахождения hash, пример для String:
int hash = 0;
for (char ch : str.toCharArray()) {
hash = hash * 31 + ch;
}
нужно использовать простое число (31 в нашем случае)
точнее, я догадываюсь, что так как используется не операция нахождения остатка после деления hash на длину hash таблицы, а битовая маска. т.к. эта операция эффективнее
меня интересует именно, почему простое число должно использоваться.
с битами не оч. силен, если можно в примере покажите...