首页 > 开发 > Asp > 正文

随机产生多个不重复数字的asp程序

2020-10-03 20:21:02
字体:
来源:转载
供稿:网友

我们先来看一种我网上搜索到的程序:

随机产生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)
%>

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表