Я искал в .NET реализацию словарей и нашел одну функцию, которая мне интересна: HashHelpers.GetPrime
.
Большая часть того, что он делает, довольно проста, он ищет простое число выше некоторого минимума, которое передается ему как параметр, по-видимому, с конкретной целью использования в качестве количества ведер в хэш-табличной структуре. Но есть одна загадочная часть:
if (HashHelpers.IsPrime(j) && (j - 1) % 101 != 0)
{
return j;
}
Какова цель проверки (j - 1) % 101 != 0
? Т.е. почему мы, по-видимому, хотим избежать наличия нескольких ковшей, которая на 1 больше, чем кратное 101?