-- 设置随机数种子
math.randomseed(tonumber(tostring(os.time()):reverse():sub(1,6)))
-- 洗牌算法
--方法一:
-- function shuffle(targetTbl)
-- local tblLen = #targetTbl
-- while(tblLen > 0)
-- do
-- local idx = math.random(tblLen)
-- targetTbl[tblLen], targetTbl[idx] = targetTbl[idx], targetTbl[tblLen]
-- tblLen = tblLen - 1
-- end
-- return targetTbl
-- end
--方法二:
function shuffle(t)
for i = #t,1,-1 do
local j = math.random(1, i)
local tmp = t[i]
t[i] = t[j]
t[j] = tmp
end
return t
end
-- test
local testTbl = {1,5,9,8,6,7}
local retTbl = shuffle(testTbl)
print(unpack(retTbl))
lua 随机洗牌算法
最新推荐文章于 2024-06-09 18:52:12 发布