这篇文章主要介绍了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) '开始数字,结尾数字,生成多少个 %>
|