假设我有所有可能的行组合,其中值可以是0,1或2. E.G:
00000
在所有这些中,如果执行以下操作,我想选择不允许行重叠的行:
从第一行 00000 开始,我们选择所有行 1 的行,我们在这种情况下得到的行是:
00001
00002
00010
00020
00100
00200
01000
02000
10000
20000
这样,这些行(包括00000)现在排除
00000之后的下一行将是 00001 ,但由于上面已经找到,因此无效。
如果我们进一步前进到 00011 ,我们会得到以下行:
00010 // This is already found in the above, so 00011 is invalid
00012
00001
00021
00111
00211
01011
02011
10011
20011
如果我们进一步跳到00111:
00110
00112
00101
00121
00011
00211
01111
02111
10111
20111
以上都没有找到,现在我们有一个列表:
00000
00001
00002
00010
00020
00100
00200
01000
02000
10000
20000
00111
00110
00112
00101
00121
00011
00211
01111
02111
10111
20111
让我们假设我们现在排在 22111 ,我们得到上述流程:
22110
22112
22101
22121
22011
22211
20111 // This is already in the above list
21111
02111 // This too, so row 22111 is invalid
12111
我只是随机选择了上面这些行,我所追求的是一种计算所有有效行的方法(按照上面的过程),而不必迭代完整列表中的每一行。
感谢您提供的任何见解!