本帖最后由 fenhanxue 于 2018-3-12 00:13 编辑
假设给定了100个一维数组(每个数组所包含的元素个数以及元素内容 是给定的),
每个数组的名字是有规律的,以 "$array_"加序号 的格式命名 ,
但每个数组所包含的元素个数以及元素内容,是没有任何规律,如:Global $array_1[3] = ['1A','1B','1C']
Global $array_2[1] = ['2A']
Global $array_3[2] = ['3A','3B']
Global $array_4[1] = ['4A']
...
Global $array_100[3] = ['100A','100B','100C']
假设1 <= i <= 100
依次随机从数组$array_1、$array_2、$array_1、....$array_i 各取一个元素,组成一个字符串,那么
问题1)一共有多少种组合?
问题2)请列出所有的组合结果?
对于问题1,可以这样计算得到:Func _GET_ZUHESHU($i);得到组合数
; 1 <= $i <= 100
Local $zuhe = 1
For $j = 1 To $i
$zuhe = $zuhe * Execute('UBound($array_'&$j&')')
Next
MsgBox(0,'共有组合数:',$zuhe)
EndFunc
对于问题2,想了一上午了,想不出好的算法,大家看看有没好的逻辑
=============举例
例如$i = 3
那么问题1的答案应该是 UBound($array_1) * UBound($array_2) *UBound($array_3) = 3*1*2 = 6
问题2的答案应该是:
1. $array_1[0] & $array_2[0]& $array_3[0] 即 '1A2A3A'
2. $array_1[0] & $array_2[0]& $array_3[1] '1A2A3B'
3. $array_1[1] & $array_2[0]& $array_3[0] '1B2A3A'
4. $array_1[1] & $array_2[0]& $array_3[1] '1B2A3B'
5. $array_1[2] & $array_2[0]& $array_3[0] '1C2A3A'
6. $array_1[2] & $array_2[0]& $array_3[1] '1C2A3B'
注:此处的1A 1B 1C 2A 3A 3B 之类的,是为了方便举例,才这样简写,实际是没有规律的随机长度的字符串 |