Python itertools product 函数在 lua中的应用

我正在寻找一种方法,在lua中实现类似于 Python itertools 库中的 product 组合函数,并带有 repeat 参数。

我找到了这个库 https://github.com/aperezdc/lua-itertools/blob/master/itertools.lua 但我不确定它对我是否有用,因为我在那里找不到 product 函数

有什么算法可以实现这样的功能吗?

点赞
用户7746452
用户7746452

你可以使用这个函数:

function ProductRepeat(tab, repeatCount)
    local result = { {} }

    for _ = 1, repeatCount do
        local newResult = { }

        for _, r in ipairs(result) do
            for _, v in ipairs(tab) do
                table.insert(newResult, { v, unpack(r) })
            end
        end

        result = newResult
    end

    return result
end
2020-01-20 13:28:01