数组元素 组合[已解决]
本帖最后由 au3x 于 2014-12-30 16:29 编辑我有个试题 :
数组A
var A=个数不固定,先假设3个
数组B
var B=个数不固定,先假设3个
数组C
var C=个数不固定,先假设3个
数组D,数组E.....数组个数不固定,先假设3个
要求得出他们的组合,如:
519,518,517,529,528,527,.......738,737
请大家帮帮忙 指点一下。 #include <array.au3>
Dim $varA =
Dim $varB =
Dim $varC =
Dim $n=UBound($varA)*UBound($varB)*UBound($varC)
Dim $aNew[$n],$x=0
For $i = 0 To UBound($varA)-1
For $j = 0 To UBound($varB)-1
For $k = 0 To UBound($varC)-1
$aNew[$x]=$varA[$i] & $varB[$j] & $varC[$k]
$x+=1
Next
Next
Next
_ArrayDisplay($aNew)
回复 2# haijie1223
你好,我复制您的代码 后 运行 提示:
C:\Documents and Settings\Administrator\桌面\arr.au3(2,13) : 错误: 表达式错误
Dim $varA = [
~~~~~~~~~~~~^
C:\Documents and Settings\Administrator\桌面\arr.au3 - 1 错误, 0 警告 回复 4# austere
请问 是不是我的 autoit3 版本问题 ? 回复 5# au3x
是不是你的版本问题啊?我的 3.3.11.3测试无问题~ 请问 是不是我的 autoit3 版本问题 ?
au3x 发表于 2014-12-9 16:09 http://www.autoitx.com/images/common/back.gif
是版本的原因,可自行添加声明数组元素数量 我用的版本是: AUTOIT_3.3.7.15.1 感谢,2F: haijie1223 4F: austere 8F: afan 回复 2# haijie1223
可是这还不是我想要的效果,我的情况是数组的个数是不固定的,有时两个,有时三、四个,,而且数组的长度也不是固定的。 回复 11# au3x
数组个数不固定,这个有难度哦~ 有难度吗?
#Include <Array.au3>
_ArrayCombinations
这个试试 有难度吗?
#Include
_ArrayCombinations
这个试试
netegg 发表于 2014-12-9 19:45 http://www.autoitx.com/images/common/back.gif
馊 蛋 {:face (303):} 本帖最后由 user3000 于 2014-12-9 21:05 编辑
回复 11# au3x
反正就是"遍历"再"遍历"......所以, 改一下2楼的代码就可以了.
现在是最多支持四个数组,你还可以继续照样子继续扩展.
#include <array.au3>
Dim $varA =
Dim $varB =
Dim $varC =
Dim $vard =
Local $aArray = _ArrayCombinationsX($varA, $varB, $varc, $vard)
_ArrayDisplay($aArray)
Func _ArrayCombinationsX($avA1, $avA2, $avA3 = Default, $avA4 = Default)
If Not IsArray($avA1) Or Not IsArray($avA2) Then Return SetError(1)
If IsArray($avA3) Then
Local $avA_3 = $avA3
Else
Local $avA_3
EndIf
If IsArray($avA4) Then
Local $avA_4 = $avA4
Else
Local $avA_4
EndIf
Local $aRe = ,$x=1
For $i = 0 To UBound($avA1)-1
For $j = 0 To UBound($avA2)-1
For $k = 0 To UBound($avA_3)-1
For $l = 0 To UBound($avA_4)-1
$aRe = $x
ReDim $aRe[$x+1]
$aRe[$x] = $avA1[$i] & $avA2[$j] & $avA_3[$k] & $avA_4[$l]
$x+=1
Next
Next
Next
Next
Return $aRe
EndFunc
页:
[1]
2