Jak wygenerować 64-bitowe liczby losowe?

Implementuję mieszanie uniwersalne i używam następującej uniwersalnej funkcji skrótu:

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

gdzie A jest liczbą losową między

2 ^ 61 i 2 ^ 62.

Therand() funkcja wC ++ ma typ powrotuliczba całkowita i nie może generować tak dużych liczb. Jak więc wygenerować losowe liczby w tym zakresie? (liczby powinny być bardzo losowe, tj. każdy numer powinien mieć takie samo prawdopodobieństwo, aby zostać wybranym)

Uwaga:

long long int random=rand();

nie działa jak liczba zwrócona przezrand jestint.

questionAnswers(2)

yourAnswerToTheQuestion