Jump to content

Pseudo-random numbers/Splitmix64: Difference between revisions

m (Change to task status)
Line 422:
0: 20027 1: 19892 2: 20073 3: 19978 4: 20030
</pre>
 
=={{header|Mathematica}}/{{header|Wolfram Language}}==
<lang Mathematica>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]]]]</lang>
{{out}}
<pre>{6457827717110365317, 3203168211198807973, 9817491932198370423, 4593380528125082431, 16408922859458223821}
<|0->20027, 1->19892, 2->20073, 3->19978, 4->20030|></pre>
 
=={{header|Nim}}==
1,111

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.