Lua 费舍尔·耶茨在卢阿是如何洗牌的

Lua 费舍尔·耶茨在卢阿是如何洗牌的,lua,shuffle,random-sample,Lua,Shuffle,Random Sample,我一直在问随机数的问题,我认为费舍尔·耶茨洗牌是最好的选择。我做了一张桌子 t = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} 现在,我如何洗牌这些,并能够单独使用它们,例如在另一个表u u = {} 如果您的桌子上没有洞: math.randomseed(os.time()) -- so that the results are always different function FYShuffle( tInput ) local tReturn = {}

我一直在问随机数的问题,我认为费舍尔·耶茨洗牌是最好的选择。我做了一张桌子

t = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
现在,我如何洗牌这些,并能够单独使用它们,例如在另一个表
u

u = {}

如果您的桌子上没有洞:

math.randomseed(os.time()) -- so that the results are always different
function FYShuffle( tInput )
    local tReturn = {}
    for i = #tInput, 1, -1 do
        local j = math.random(i)
        tInput[i], tInput[j] = tInput[j], tInput[i]
        table.insert(tReturn, tInput[i])
    end
    return tReturn
end

谢谢你的帮助!我会确定并在我的程序中使用它。谢谢我的问题是,我该如何使用它?让我们假设t={A,B,C,D,E},我如何让它打印出像“C,D,E,B,A”这样的东西?随机数在哪里?
{1,2,3,4,5,6}
为我返回
{6,6,5,4,3,2}
。@ZackaryCW很抱歉,我忘记了
匹配.random
调用。现在更新答案。