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