Идеальный минимальный хэш для математических комбинаций
Сначала определите два целых числаN
а такжеK
, гдеN >= K
, оба известны во время компиляции. Например:N = 8
а такжеK = 3
.
Затем определите набор целых чисел[0, N)
(или же[1, N]
если это упрощает ответ) и назовите егоS
, Например:{0, 1, 2, 3, 4, 5, 6, 7}
Количество подмножествS
с участиемK
элементы задаются формулойC(N, K)
, пример
Моя проблема заключается в следующем: создать идеальный минимальный хэш для этих подмножеств. Размер примера хеш-таблицы будетC(8, 3)
или же56
.
Меня не волнует порядок, только то, что в хеш-таблице содержится 56 записей, и что я могу быстро определить хеш из набораK
целые числа. Меня тоже не волнует обратимость.
Пример хэша:hash({5, 2, 3}) = 42
, (Число 42 не важно, по крайней мере, не здесь)
Есть ли общий алгоритм для этого, который будет работать с любыми значениямиN
а такжеK
? Я не смог найти его с помощью поиска в Google или своими собственными наивными усилиями.