首页 > 解决方案 > 如何在Lua中的表[表中]中查找所有可能的字符连接

问题描述

如何在表 [in a table ] 中找到所有可能的字符连接并将它们显示为带有换行符的字符串?

例如,我有一组带有字符的表:

c={
    {'1','2','3'},
    {'a','b','c'},
    {'A','B','C'}
}

我想找到所有可能的连接,比如

1aA
1aB
1aC
-- second table second character
1bA
1bB
1bC
-- second table third character
1cA
1cB
1cC
-- first table second character
2aA
2aB
2aC
-- and so on...

可能有很多表,但有多少字符。感谢帮助!

编辑:

我在这里找到了答案,

https://forum.cheatengine.org/viewtopic.php?p=5773931#5773931

标签: arraysluaconcatenation

解决方案


该算法假设每行中总是有相同数量的值,在这种假设下,我们可以说您有(#c[1])^(#c)值并使用此信息来展平表格。

c = {
    {'1','2','3'},
    {'a','b','c'},
    {'A','B','C'},
}
local columns = #c[1]
local rows = #c

for i = 0, (columns)^(rows) - 1 do
    local output = ""
    for k, v in ipairs(c) do
        output = output .. v[i % ((columns)^k) // ((columns)^(k - 1)) + 1]
    end
    print(output)
end

输出:

1aA
2aA
3aA
1bA
2bA
3bA
1cA
2cA
3cA
1aB
2aB
3aB
1bB
2bB
3bB
1cB
2cB
3cB
1aC
2aC
3aC
1bC
2bC
3bC
1cC
2cC
3cC

推荐阅读