我需要一个生成k个字符大小n的所有组合的算法。
例如,如果我有n=1和k={a,b},结果应该是:

a
b

如果n=3且k={a,b},则结果应为:
a a a
a a b
a b a
a b b
b a a
b a b
b b a
b b b

有人能提出一个实现这个的算法吗?
谢谢您!

最佳答案

您只需将解决方案映射到值0到(k ^n)-1。解只是用基数k表示的数|
例如k={a,b,c}n=2
解是0,1,23^2-1=8

decimal |  representation in base 3
--------+---------------------------
0       |   00
1       |   01
2       |   02
3       |   10
4       |   11
5       |   12
6       |   20
7       |   21
8       |   22

现在将“0”替换为“A”,将“1”替换为“B”,将“2”替换为“C”,您将得到
aa
ab
ac
ba
bb
bc
ca
cb
cc

关于algorithm - 生成大小为k个字符的n个组合的算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17609955/

10-11 18:11