Я понимаю, что лучшая практика - использовать наибольшее простое число (меньшее, чем размер массива) в функции мода второй хэш-функции. Это лучшая практика.
Но мой вопрос касаетсяиспользование чисел, которые не являются простыми числами.Меня не интересует псевдокод, просто идея концепции.
Допустим, у меня есть массив m = 20, и я должен выбрать между 6,9,12 и 15 в качестве значений, которыебудет введен во второй хэш-функции.Какой из них даст мне лучший «спред»?
Моя первая мысль - пойти на ту же идею, что и выбрать простое число, только слегка измененное, что означает использование наибольшего числа с минимальным количествомперестановки:
6 -> 2,3
9 -> 3,3 = 3
12 -> 2,3,4,6
15 -> 3,5
Справа от летучей мыши я могу исключить 6 (существует большее число с таким же количеством перестановок) и 12 (слишком много перестановок).
Теперь вопросвозникает, если я использую 9 - имеет наименьшее количество перестановок, или я должен выбрать 15 - хотя он имеет больше перестановок, он намного больше 9 и намного ближе к размеру массива (m = 20).
Правильно ли я использую этот подход?или есть лучший способ выбора номера, учитывая, что я могу выбрать только из чисел, указанных выше?