RosettaCodeData/Task/Knuth-shuffle/Pluto/knuth-shuffle.pluto
2026-04-30 12:34:36 -04:00

15 lines
348 B
Text

local fmt = require "fmt"
local function knuth_shuffle(a)
for i = #a, 2, -1 do
local j = math.random(i)
a[i], a[j] = a[j], a[i]
end
end
local tests = { {}, {10}, {10, 20}, {10, 20, 30}, {10, 20, 30, 40} }
for tests as a do
local b = a:clone()
knuth_shuffle(a)
print($"{fmt.swrite(b)} -> {fmt.swrite(a)}")
end