3位不同数字的组合数 asp如何写

来源:百度知道 编辑:UC知道 时间:2024/06/24 16:26:03
3位不同数字的组合数
如:
数组
a="001,002,003"
他们的组合:001002003,001003002,002001003,002003001,003001002,003002001
用asp怎么自己动算出来

参考这个程序吧。。这个比你那复杂的多了

<%
'定义要取数字的数组
aaa=Array(0,1,2,3,4,5,6,7,8,9)

'数组上限,这个的上限是9
countaaa=ubound(aaa)

'排列组合的序号,这里从零开始
m=0

'取数字的数量,N>0
n=5

'重定义数组bbb()和CCC(),bbb()用来存储最终取出的M组数字对应的AAA数组里面的下标,CCC()用来缓存BBB()中第M组数字的下标
redim bbb(m)
redim ccc(n)
'把这个CCC()先让他从第一个数字开始依次取N个,本例就是CCC(0)=0,ccc(1)=1,...,ccc(4)=4
for i=0 to n-1
ccc(i)=i
next
'把第一组赋值给bbb(0),也就是第一组取出来的5个数字的下标
bbb(0)=ccc

response.write "<br>"&m&":"
'循环打印出这个BBB(0),结果是0,1,2,3,4
for i=0 to n-1
response.write bbb(0)(i)&"~"
next

'第一组数字出来了,M加一,开始取第二组
m=m+1
'进入循环,当每组数字的第一个取到再取就重复或不合要求的时候为止,本例来说就是,当取到对应AAA下标是5,6,7,8,9这5个数字的时候,就不能往下取了,就完了,所以循环到此结束
while bbb(m-1)(0)<countaaa-n+1

'重定义一下BBB(M),改变一下长度,加个PRESERVE保存之前的数据,刚开始想用二维数组结果到这里的时候就出错,最后查了资料才知道这个PRESERVE只能改变多维数组最后一维的长度并保存