首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

请问怎么实现M个字符的N次方组合算法,多谢

2012-01-16 
请教如何实现M个字符的N次方组合算法,谢谢!假设M个字符为:abc组合的长度为:3则生成的个数为:3的3次方 27

请教如何实现M个字符的N次方组合算法,谢谢!
假设M个字符为:abc
组合的长度为:3
则生成的个数为:3的3次方 = 27个组合 (M字符的长度的组合长度次方,即 3*3*3)
则生成的组合为:

aaa
aab
aac
aba
abb
abc
aca
acb
acc
baa
bab
bac
bba
bbb
bbc
bca
bcb
bcc
caa
cab
cac
cba
cbb
cbc
cca
ccb
ccc

[解决办法]
有限长度,用循环:
s = "abc"
for i = 1 to 3
for j = 1 to 3
for k = 1 to 3
debug.print mid(s, i, 1) & mid(s, j, 1) & mid(s, k, 1)
next
next
next

任意长度用递归:
n个长度的字符串集合可以表述为n-1个长度的字符串集合,每个项都用元字符匹配一次
直到n = 1。

热点排行