asp教程

ASP生成随机数 不重复

位置:首页 > asp教程 > asp技巧,2014-05-13
这篇文章主要介绍了ASP生成不重复随机数的方法,需要的朋友可以参考下

ASP生成随机数:


Randomize '纯随机,不重复 
Response.write Int((999999999 * Rnd) + 111111111) '生成111111111到999999999之间随机数


ASP不重复随机数:

方法一: 已测

使用的时候需要注意里面的分割字符串的字符。


<% 
'生成的是一个不重复的数组 
Function GetRnd(lowerNum,upperNum) 
Dim unit,RndNum,Fun_X 
unit = upperNum - lowerNum 
Redim MyArray(unit) 
For Fun_I=0 To unit 
myArray(Fun_I)= lowerNum + Fun_I 
Next 
For Fun_I=0 To round(unit) 
RndNum = getRndNumber(Fun_I,unit) 
Fun_X = myArray(RndNum) 
myArray(RndNum)=myArray(Fun_I) 
myArray(Fun_I)=Fun_X 
Next 
GetRnd = Join(myArray) 
End Function 
Function getRndNumber(lowerbound,upperbound) 
Randomize 
getRndNumber=Int((upperbound-lowerbound+1)*Rnd+lowerbound) 
End Function 
Response.Write GetRnd(1,1000) 
%> 
方法二:



<% 
function rndarray(istart,iend,sum) 
dim arrayid(),i,j,blnre,temp,iloop,eloop 
redim arrayid(sum-1) 
i=0 
iloop=0 
eloop=0 
blnre=false 
randomize 
do while i<sum 
temp=int(rnd*(iend-istart+1)+istart) 
if i=0 then 
arrayid(0)=temp 
i=i+1 
iloop=iloop+1 
else 
for j=0 to i-1 
if arrayid(j)=temp then 
blnre=true 
iloop=iloop+1 
exit for'这一句很重要,防止多余的循环 
else 
iloop=iloop+1 
end if 
next 
 if blnre=false then 
 arrayid(i)=temp 
 i=i+1 
 else 
 blnre=false 
 end if 
end if 
loop 
rndarray=join(arrayid) 
end function 
response.write rndarray(1,5,1) '开始数字,结尾数字,生成多少个 
%>

TAGS:ASP生成随机数

猜你喜欢

NewHot