我一直在问随机数问题,我认为Fisher-Yates混洗将是最好的选择。我做一张桌子't'

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

关于lua - 您如何在Lua进行Fisher-Yates洗牌,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35572435/

10-09 15:46