黑色袜子 发表于 2015-7-8 19:23:12

【已解决】枚举字符串中所有字符的组合(论坛有类似的,但是不是我想要的)

本帖最后由 黑色袜子 于 2015-7-9 12:50 编辑

论坛P大有一个贴子也是这样的。但是他的是这样的1
2
3
1 2
2 3
1 3
1 2 3而我要的是这样的
1
2
3
11
12
13
21
22
23
31
32
33
111
112
113
121
122
123
。。。。
P大的贴子http://www.autoitx.com/forum.php?mod=viewthread&tid=17783&extra=&highlight=%C3%B6%BE%D9&page=1

nhnhwsnh 发表于 2015-7-8 22:24:02

这个要靠递归来实现啦


#include <Array.au3>

Local $myArray =
Local $str = [""]

getnewstr($str, $myArray)

Func getnewstr($strarray, $aArray)
        Local $newstrarray
        For $i = 0 To UBound($strarray) - 1
                For $j = 0 To UBound($aArray) - 1
                        _ArrayAdd($newstrarray, $strarray[$i] & $aArray[$j])
                        ConsoleWrite($strarray[$i] & $aArray[$j] & @CRLF)
                Next
        Next
        If StringLen($newstrarray) < UBound($aArray) Then
                getnewstr($newstrarray, $aArray)
        EndIf
EndFunc   ;==>getnewstr

luren666 发表于 2015-7-8 22:42:22

本帖最后由 luren666 于 2015-7-8 22:43 编辑

这个等于是穷举了所有的可能的组合,随着数组元素的增加,运算量也是呈指数级的增长。

luren666 发表于 2015-7-8 22:42:23

本帖最后由 luren666 于 2015-7-9 00:47 编辑

假如数组元素数量为X,则结果的数量是X的X次方。
页: [1]
查看完整版本: 【已解决】枚举字符串中所有字符的组合(论坛有类似的,但是不是我想要的)