18 lines
645 B
Text
18 lines
645 B
Text
ClearAll[BitShiftLevelUint, MultiplyUint, GenerateRandomNumbers]
|
|
BitShiftLevelUint[z_, n_] := BitShiftRight[z, n]
|
|
MultiplyUint[z_, n_] := Mod[z n, 2^64]
|
|
GenerateRandomNumbers[st_, n_] := Module[{state = st},
|
|
Table[
|
|
state += 16^^9e3779b97f4a7c15;
|
|
state = Mod[state, 2^64];
|
|
z = state;
|
|
z = MultiplyUint[BitXor[z, BitShiftLevelUint[z, 30]], 16^^bf58476d1ce4e5b9];
|
|
z = MultiplyUint[BitXor[z, BitShiftLevelUint[z, 27]], 16^^94d049bb133111eb];
|
|
Mod[BitXor[z, BitShiftLevelUint[z, 31]], 2^64]
|
|
,
|
|
{n}
|
|
]
|
|
]
|
|
GenerateRandomNumbers[1234567, 5]
|
|
nums = GenerateRandomNumbers[987654321, 10^5];
|
|
KeySort[Counts[Floor[5 nums/N[2^64]]]]
|