ユニバーサル ハッシュを実装し、次のユニバーサル ハッシュ関数を使用しています。
h(k)=((A*k)mod 2^64) rsh 64-r
ここで、A は次の間の乱数です。
2^61 と 2^62。
C++のrand()
関数は戻り値の型が整数であり、その大きな数値を生成できません。では、この範囲で乱数を生成するにはどうすればよいですか? (数字は非常にランダムである必要があります。つまり、すべての数字が選択される確率が等しい必要があります)
ノート:
long long int random=rand();
によって返される数値rand
はintであるため、機能しません。