我们先来看一种我网上搜索到的程序:
随机产生4个不重复数字的asp程序!(上水道的)
<%
randomize
dim a1,a2,a3,a4
a1=Int(10 * Rnd)
a2=Int(10 * Rnd)
do while a1=a2
a2=Int(10 * Rnd)
loop
a3=Int(10 * Rnd)
do while a1=a3 or a2=a3
a3=Int(10 * Rnd)
loop
a4=Int(10 * Rnd)
do while a1=a4 or a2=a4 or a3=a4
a4=Int(10 * Rnd)
loop
%>
<%=a1%>
<%=a2%>
<%=a3%>
<%=a4%>
挺好懂的,不过要是要生成多点数字,这样可就麻烦了,于是看到了下面一样写法:
-- 作者:wxz
-- 发布时间:2002-10-16 22:44:18
怎样一次生成10个不同的随机数
<%
dim n(10)
for i=1 to 10
Randomize
n(i)=Int(50* Rnd+1)
for q=1 to i
if n(i)=n(q-1) then
n(i)=n(q)+1
end if
next
response.write n(i)&"<br>"
next
%>
总觉得这种方法很麻烦,但是找不到更好的方法了:(
那么我就利用此法写了一个通用的子函数。
<%
function showrnd(x,y)
if y<x then
exit function
end if
redim n(x)
dim i,q
dim isok
for i=1 to 10
Randomize
n(i)=round((y-1)* Rnd)+1
isok=false
do while not isok
for q=1 to i
if n(i)=n(q-1) then
n(i)=Int((y-1)* Rnd)+1
isok=false
exit for
end if
isok=true
next
loop
response.write n(i)&"<br>"
next
end function
'产生在1到50内的10个随机数
call showrnd(10,50)
%>