Как генерировать 64-битные случайные числа?
Я реализую универсальное хеширование и использую следующую универсальную хеш-функцию:
h (k) = ((A * k) mod 2 ^ 64) rsh 64-р
где A - случайное число между
2 ^ 61 и 2 ^ 62.
rand()
функция вC ++ имеет тип возвратацелое число и он не может генерировать такие большие числа. Итак, как я могу генерировать случайные числа в этом диапазоне? (числа должны быть очень случайными, т. е. каждое число должно иметь равную вероятность выбора)
Примечание:
long long int random=rand();
не работает как число, возвращаемоеrand
являетсяИНТ.