Como gerar números aleatórios de 64 bits?
Estou implementando o hash universal e usando a seguinte função de hash universal:
h (k) = ((A * k) mod 2 ^ 64) rsh 64-r
onde A é um número aleatório entre
2 ^ 61 e 2 ^ 62.
orand()
função emC ++ tem tipo de retornointeiro e não pode gerar grandes números. Então, como posso gerar números aleatórios nesse intervalo? (os números devem ser muito aleatórios, ou seja, cada número deve ter a mesma probabilidade de ser selecionado)
Nota:
long long int random=rand();
não funciona como o número retornado porrand
éint.