ASP生成随机数 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) '开始数字,结尾数字,生成多少个

  %>