我有一个映射程序,可以将版本化的语言代码从一个版本映射到另一个版本。该程序使用组合代码正确映射代码,但需要注意一个警告。我已经解析了映射文件,并且已经足够远地使用每个节点的选项来构造数组并计算给定数据的可能性数量。
考虑以下数据:
CodeA translates to: Array(1,1) = "CodeB|CodeC|CodeD|"
Array(1,2) = "CodeE|"
Array(1,3) = "CodeF|CodeG|"
这意味着 CodeA 转换为(CodeB or CodeC or CodeD) with codeE with (CodeF or CodeG)
代码首先计算可能性的数量(上面有 6 个),然后使数组变暗以适应结果字符串。我需要存储的字符串是映射的所有组合,即:
CodeB with CodeE with CodeF
CodeB with CodeE with CodeG
CodeC with CodeE with CodeF
CodeC with CodeE with CodeG
CodeD with CodeE with CodeF
CodeD with CodeE with CodeG
该代码需要使用具有多个映射的所有不同大小的数组。上面的例子很简单,但它可以变得更复杂,像这样:
CodeA translates to: Array(1,1) = "CodeB|CodeC|CodeD|"
Array(1,2) = "CodeE|"
Array(1,3) = "CodeF|CodeG|"
Array(2,1) = "CodeH|"
Array(2,2) = "CodeI|CodeJ|"
Array(2,3) = "CodeK|CodeL|CodeM|CodeN|"
Array(2,4) = "CodeO|"
Array(3,1) = "CodeQ|"
Array(3,2) = "CodeR|CodeS|"
这意味着 CodeA 转换为:((CodeB or CodeC or CodeD) with CodeE with (CodeF or CodeG))
or (CodeH with (CodeI or CodeJ) with (CodeK or CodeL or CodeM or CodeN) with CodeO)
or (CodeQ with (CodeR or CodeS))
--- 96 个组合
该程序已经知道最大的第一个下标,因此代码如下所示:
for i = 1 to maxSubOne
GET_COMBINATIONS(Array(i))
next i
有什么建议么?