#include <Array.au3>
Dim $array[7]=['红','橙','黄','绿','青','蓝','紫'] ;定义球总数目
Dim $NumToTake=3 ;定义要取出几个
$aNewArray = _ArrayCombinations($array, $NumToTake ,',') ;按组合方式取球
_ArrayDisplay($aNewArray, "总共有"&$aNewArray[0]&"种不分先后的办法") ;显示取球结果
;获取数组第二维的大小, 取出球数的阶乘
Dim $Second=1
For $i=1 To $NumToTake
$Second*=$i
Next
Dim $Result[$aNewArray[0]][$Second] ;按照算出来的数字定义一个而为数组。
For $i=0 To $aNewArray[0]-1 ;外循环, 循环每个取球组合
Local $temp=0 ;定义临时变量
$temp=StringSplit($aNewArray[$i+1],',') ;按,拆分
_ArrayDelete($temp,0) ;删除顶部的 数组元素个数
$temp=_ArrayPermute($temp,',') ;按排列重排数组
_ArrayDelete($temp,0) ;删除顶部的总数
If IsArray($temp) Then ;将排列好的数组赋值到结果数组里。
For $j=0 To 5
$Result[$i][$j]=$temp[$j]
Next
EndIf
Next
_ArrayDisplay($Result,'总共有'&$aNewArray[0]*$Second&"种分先后的取法")
|