Ответ 1
Я задал тот же вопрос о math.stackexchange.com: Любопытные свойства из 33.
Гипотеза среди математиков и исследование, которое я сделал по этой теме, заставляют меня думать, что ответ таков:
Хорошо, я узнал, почему Microsoft использует 33. Это называется Bernstein Hash. Оказывается, что 33 имеет некоторые магические свойства, которые создают хорошее распределение хеш-кодов и очень мало теоретических знания о том, почему.
В принципе, при энтропии и сравнении скорости Бернштейн делает достаточно хорошо и довольно быстро. Дэн Бернштейн, парень, который придумал постоянную 33, не смог объяснить, какое свойство 33 создало такое хорошее распределение хешей.
Было написано несколько работ, сравнивающих хеш-функции и подтвердивших это открытие, не объяснив при этом пользы от использования 33. Кроме того, я не мог найти, почему Java использует 31 вместо этого. Кажется, это математическая и программирующая тайна на сегодняшний день.