Как генерировать 64-битные случайные числа?

Я реализую универсальное хеширование и использую следующую универсальную хеш-функцию:

h (k) = ((A * k) mod 2 ^ 64) rsh 64-р

где A - случайное число между

2 ^ 61 и 2 ^ 62.

rand() функция вC ++ имеет тип возвратацелое число и он не может генерировать такие большие числа. Итак, как я могу генерировать случайные числа в этом диапазоне? (числа должны быть очень случайными, т. е. каждое число должно иметь равную вероятность выбора)

Примечание:

long long int random=rand();

не работает как число, возвращаемоеrand являетсяИНТ.

Ответы на вопрос(2)

Ваш ответ на вопрос