您当前的位置:天天ASP(学习网)ASP编程基础教程 → 文章内容

随机取数组,打乱数组元素

作者:本站  来源:本站整理  发布时间:2014-12-25 10:09:38
随机取数组元素
 
dim xuan
XUAN=OpenFile("xuan.txt")
xuan=split(xuan,"||")
 
Function rndint(byval MaxNum,byval MinNum)'asp生成整数之间的随机数函数
  dim tmp
  if MaxNum<MinNum then
    tmp=MinNum:MinNum=MaxNum:MaxNum=tmp
  end if
  
  Randomize
  rndint=int(rnd *(MaxNum-MinNum+1)+MinNum)
End Function
 
'arr:数组
'num:要取的个数
function rndarray(arr,num)
  if num<1 then rndarray="":exit function
  dim nownum,idxs,values,arrubound
  nownum=0'记录取了多少个
  idxs=""'记录取到的下标,用,分隔开
  values=""'记录取到的数组的值,用,分隔开
  arrubound=ubound(arr)'数组上限,随机数最大值
  while nownum<num
     rndnum=rndint(0,arrubound)
     if instr(idxs,","&rndnum&",")=0 then'未随机到这个下标
       nownum=nownum+1
       if idxs="" then
            idxs=","&rndnum&","
       else
         idxs=idxs&rndnum&","
       end if
       values=values&","&arr(rndnum)
     end if
  wend
  rndarray=right(values,len(values)-1)

end function

打乱数组元素:
place=InStrRev(cmark,"|||") 
cmark=Left(cmark,place-1) 
 
zcyshuzu=split(cmark,"|||")
 
 
 
shuzu0=LBound(zcyshuzu) '需要打乱数组的下标
shuzu1=UBound(zcyshuzu) '需要打乱数组的上标
if shuzu0<LBound(zcyshuzu) or shuzu0>=UBound(zcyshuzu) then shuzu0=LBound(zcyshuzu)
if shuzu1<=shuzu0 or shuzu0>UBound(zcyshuzu) then shuzu0=UBound(zcyshuzu)
 
 
 
for i=shuzu0 to shuzu1
luan_temp=zcyshuzu(i)
Randomize Timer
luan_num=shuzu0+int(rnd*(shuzu1-shuzu0))
zcyshuzu(i)=zcyshuzu(luan_num)
zcyshuzu(luan_num)=luan_temp
next
 
for i=LBound(zcyshuzu) to UBound(zcyshuzu)
response.write cstr(zcyshuzu(i))
next 

  • 上一篇文章:404错误的页面(CDONTS)
  • 下一篇文章:表单日期
  • 文章评论 (评论内容只代表网友观点,与本站立场无关!)

    用户名: 查看更多评论

    分 值:100分 85分 70分 55分 40分 25分 10分 0分

    内 容:

             (注“”为必填内容。)