<%
dim list_no:list_no=20
dim a:a=array("壹","二","三","四","五","六","七")
dim n,i,j,c(6)
for i=0 to 6
c(i)=0 '初始化統計數
next
%>
本次隨機次數<%=list_no%>次 (要中文顯示的)<br><br>
<%
leng=UBound(a)
n=0
do while n<list_no
'隨機排序
randomize
for i=0 to leng
d=int(rnd()*leng)
temp=a(d)
a(d)=a(i)
a(i)=temp
temp=c(d)
c(d)=c(i)
c(i)=temp
Next
'取出隨機排序後的前兩個數,作為壹組隨機數
c(0)=c(0)+1
c(1)=c(1)+1
response.write n+1&". "&a(0)&" "&a(1)&"<br>"
n=n+1
loop
%>
<br>統計結果(最多的要排在前面)<br><br>
<%
for i=0 to UBound(c)-1
for j=i+1 to UBound(c)
if c(i)<c(j) then
temp=a(i)
a(i)=a(j)
a(j)=temp
temp=c(i)
c(i)=c(j)
c(j)=temp
end if
next
next
for i=0 to 6
response.write a(i)&" "&c(i)&"次<br>"
next
%>
運行結果:
本次隨機次數20次 (要中文顯示的)
1. 壹 三
2. 六 三
3. 三 五
4. 五 二
5. 四 五
6. 六 五
7. 七 壹
8. 壹 四
9. 六 七
10. 二 三
11. 二 六
12. 六 七
13. 二 七
14. 六 七
15. 二 四
16. 七 二
17. 五 六
18. 三 二
19. 五 壹
20. 四 三
統計結果(最多的要排在前面)
二 7次
六 7次
五 6次
三 6次
七 6次
四 4次
壹 4次
——————————————————
感謝luckynet888的點評。
在此作點補充說明:
上面方案,需要進行7次循環。每壹組絕對不會有“壹壹”“二二”之類的重復數據,但可能有兩組或多組重復的情況。例如本次運行就出現三次“六七”,但樓主似乎並沒有這種限制。
如果樓主要求不同組間也不能重復,則可用下面方案,但總***只有42種可能,也就是說最多只能有42組數據。這個方案需要進行42次循環.
思路:列出所有42種可能組合,將數組隨機打亂次序,再取出數據,要n組就將list_no設為n,n的取值範圍是 1~42 ,最多42組,絕對隨機,不會重復數據
<%
dim list_no:list_no=20 '隨機次數, 1-42,
dim a:a=array("壹","二","三","四","五","六","七")
dim n,i,j,b(6),c(6),r(41,1)
for i=0 to 6
b(i)=i
c(i)=0
next
%>
本次隨機次數<%=list_no%>次 (要中文顯示的)<br><br>
<%
'列出所有42種可能組合
n=0
for i=0 to 6
for j=0 to 6
if i<>j then
r(n,0)=i
r(n,1)=j
n=n+1
end if
next
next
'隨機排序
randomize
for i=0 to UBound(r)
d=int(rnd()*UBound(r))
temp0=r(d,0)
r(d,0)=r(i,0)
r(i,0)=temp0
temp1=r(d,1)
r(d,1)=r(i,1)
r(i,1)=temp1
Next
'列出結果
for j=0 to list_no-1
c(r(j,0))=c(r(j,0))+1
c(r(j,1))=c(r(j,1))+1
response.write j+1&". "&a(r(j,0))&" "&a(r(j,1))&"<br>"
next
%>
<br>統計結果(最多的要排在前面)<br><br>
<%
for i=0 to UBound(c)-1
for j=i+1 to UBound(c)
if c(i)<c(j) then
temp=a(i)
a(i)=a(j)
a(j)=temp
temp2=c(i)
c(i)=c(j)
c(j)=temp2
end if
next
next
for i=0 to 6
response.write a(i)&" "&c(i)&"次<br>"
next
%>
運行結果:
本次隨機次數20次 (要中文顯示的)
1. 壹 七
2. 五 壹
3. 二 五
4. 二 六
5. 六 二
6. 五 六
7. 壹 二
8. 壹 六
9. 四 七
10. 七 二
11. 三 五
12. 二 壹
13. 壹 五
14. 六 五
15. 七 六
16. 五 三
17. 二 七
18. 六 七
19. 五 四
20. 五 二
統計結果(最多的要排在前面)
五 9次
二 8次
六 7次
壹 6次
七 6次
四 2次
三 2次