Я пытаюсь реализовать алгоритм подсчета гиперлога, используя стохастическое усреднение. Для этого мне нужно много независимых универсальных хэш-функций для хэш-элементов в разных субпотоках.Как получить семейство независимых универсальных хеш-функций?
Я обнаружил, что есть только несколько хеш-функций, доступных в hashlib , и, похоже, у меня нет возможности предоставить семя или что-то еще? Я думаю использовать разные соли для разных субпотоков.
Я не эксперт, но так как там будет столкновения в любом случае вы не можете просто добавить соль пост-хеширование, т.е. к самому хешу? Не уверен, что вы подразумеваете под «независимым», каково фактическое требование/ожидание. – unwind
@unwind Если бы я использовал соль, какие функции библиотеки я должен использовать, потому что я не мог ее найти. –
Извините, рекомендации библиотеки не соответствуют теме переполнения стека. Но в любом случае ... функции хэшлиба [криптографические хэш-функции] (https://en.wikipedia.org/wiki/Cryptographic_hash_function), они _can_ будут использоваться для создания хеш-таблиц и т. Д., Но они относительно медленны. Возможно, вы могли бы сделать что-то с встроенной функцией 'hash()' Python в сочетании с формулой 'h (a, b, x) = (a * x + b)% p% m' из статьи Википедии о [универсальном хэшировании ] (https://en.wikipedia.org/wiki/Universal_hashing#Hashing_integers). –