當前位置:編程學習大全網 - 源碼下載 - ASP 難題編程高手來幫忙100+100

ASP 難題編程高手來幫忙100+100

思路:將數組隨機打亂次序,再取出其中兩個,本例取前兩個數,絕對隨機,不會有“壹壹”、“六六”之類的重復數據

<%

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次

  • 上一篇:win10系統下用Flash軟件制作電子相冊的方法
  • 下一篇:壹元二次對稱軸方程公式
  • copyright 2024編程學習大全網