Я ищу хэш-функцию, которая работает с маленьким целым числом (скажем, в диапазоне 0 ... 1000) и выдает 64-разрядное целое число.
Набор результатов должен выглядеть как случайныйраспределение 64-битных целочисленных значений: равномерное распределение без линейной корреляции между результатами.
Я надеялся, что для выполнения функции потребуется всего несколько циклов ЦП.(код будет на C ++).
Я рассмотрел умножение ввода на большое простое число и взятие по модулю 2 ** 64 (что-то вроде линейного конгруэнтного генератора), но между выходами есть очевидные зависимости(в младших битах).
Поиск в Google ничего не обнаружил, но я, вероятно, использую неправильные условия поиска.
Существует ли такая функция?
Некоторая справочная информация:
Я хочу не использовать в алгоритме большую постоянную таблицу с псевдослучайными числами и вычислять случайные числа на лету.
Безопасность не является проблемой.