Здравствуйте, kov_serg, Вы писали:
W>>>Вот уже кто-то успел объединить две идеи: http://rsdn.org/forum/alg/6734164.1Автор: kov_serg
Дата: 23.03.17
Правда взяв при этом зачем-то более сложный способ хеширование по сравнению с тривиальным. Но если так требует чувство прекрасного, то почему бы и нет?
V>>Ну так это не хеширование
Это упаковка двух дат в один long и распаковка при сравнении.
V>>Количество различных хешей равно количеству различных пар.
_>_>Идеальной хеш-функцией называется такая функция, которая отображает каждый ключ из набора S во множество целых чисел без коллизий. В математике такое преобразование называется инъективным отображением.
_>Что шарики бракованные? Не радуют?
Не, не радуют. Я согласен, что это решение формально под данное определение подпадает.
Но всё-таки мне кажется (субъективно, не настаиваю, что это так), что не это имелось в виду в начальной постановке задачи.
Потому, что такое решение можно получить намного проще и читаемей:
struct DateRange
{
public int UnixTimeDateMin;
public int UnixTimeDateMax;
}
...
long hash = (long)DateRangeInstance;
Хотя, топикстартер отмалчивается, видимо, это ему всё равно уже не надо.