Category:Jq/MRG32k3a.jq: Difference between revisions

def knuthShuffle:
(fix typo)
(def knuthShuffle:)
 
Line 3:
"name": "MRG32k3a",
"description": "MRG32k3a Combined Recursive Pseudo-Random Number Generator",
"version": "2024.06.0616",
"homepage": "https://rosettacode.org/w/index.php?title=Category:Jq/MRG32k3a.jq",
"license": "MIT",
Line 38:
 
def nextFloat: nextInt | .nextFloat = (.nextInt / D);
 
# Input/Output: {prng, array}
def knuthShuffle:
(.array|length) as $n
| if $n <= 1 then .
else .i = $n
| until(.i == 0;
.i += -1
| .prng |= nextFloat
| (.prng|.nextFloat * $n | trunc) as $j
| .array[.i] as $t
| .array[.i] = .array[$j]
| .array[$j] = $t)
end;
 
# A convenience function for emitting an array of $n PRN
2,503

edits