微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐