我正在寻找并从中map<char, vector<char> >
生成每一个可能map<char, char>
的结果。
我知道这可能会使用大量内存并需要一些时间。
每个都map<char, char>
需要包含每个字母 az,并映射到唯一的 az 字符。IE。ak bj cp dy ev fh ga hb ir jq kn li mx nc oo pz qs rl sd te uw vf wg xm yu zt
到目前为止,这是我为自己得出的结论:
为了将可能组合的荒谬数量减少到较低的数量,如果 avector<char>
包含超过 5 个元素,我将简单地将其替换为vector<char>
包含来自我的 'master'/'original' 的单个字符的 a map<char, char>
。
并非所有字符都会出现vector<char>s
在地图的所有区域中。需要找到这些字符并将其放入一些“其他”向量中。
这还应该包含一个字符是多个字符键的唯一可能字符的字符(即我正在使用的示例中的 mw - 我不确定如何处理)。
此“其他”向量应用于不可能具有唯一 az 字符或多个字符具有相同的单个可能字符的情况。
这是我到目前为止的一个例子。
我将采取map<char, vector<char> >
,例如:
a: gjkpqvxz
b: gjkpqvxz
c: gjkpqvxyz
d: mw
e: gjkpqvxz
f: nr
g: at
h: cf
i: his
j: gjkpqvxz
k: r
l: h
m: gjkpqvxz
n: gjkpquvxyz
o: is
p: gjkpqvxz
q:是
r: dl
s: l
t: e
u: dgkpuvy
v: cf
w:
bcf x: dguy
y: f
z: at
这是我的起始地图。在切出超过 5 个的大字符向量并用最佳猜测替换它们之后。如果 avector<char>
的大小为 1,则该字符映射只有一个组合,并且该字符不能用于任何其他映射,因为它会使其不唯一。我已将其修剪为:
a: k
b: j
c: p
d: mw
e: v
f: n
g: at
h: c
i: is
j: q
k: r
l: h
m: x
n: guy
o: is
p: z
q:是
r: d
s: l
t: e
u: dguy
v: c
w: bc
x: dguy
y: f
z: at
'others' 向量包含 'o' (我认为重要的是要注意,我认为这应该包含上面示例中的 mw 等情况。因为 d 是唯一可以使用 mw 的地方,但显然需要每个字母只能使用一次,只能使用其中一个,而另一个则丢失在某个地方。我不知道如何编写一个一般案例来将这些添加到其他向量中。)
我正在寻找帮助和指示,以生成像这样和这种格式的所有可能map<char, char>
。map<char, vector<char> >s
它们将用作函数调用中的参数。我不确定从哪里开始写一些一般意义上的东西。我可能会用大量的 for 循环来处理它.
对不起,如果这太像文字墙,或者看起来过于具体或写得不好/问得不好。
我感谢任何和所有的帮助。