我需要一个生成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/