asp生成不重复的随机数,随机取数据库记录

<%
   '生成 k 个不重复的 小于max 的随机数
 
dim k
k=4
max=10
dim b()    '生成的数存储在数组b()中
redim b(k)

b(0)=0
 function check(t,n)
   check=true
   for d=1 to n-1
     if t=b(d) then
      check=false
     End If
   next
 end function

for i= 1 to k
  do
      Randomize  
      b(i)= Int(Rnd*max)+1
  loop until check(b(i),i)

next
%>

另一种方法:
由数组a记录某数是否已生成,避免重复
<%
dim a(),b()
redim a(40),b(40)

for i=1 to 40
  a(i)="noSelected"
next

k=20
for j=1 to k       
  do

  Randomize
      b(j)= Int(Rnd*40) 1
    if a(j)="noSelected" then
          exit do
    end if

      loop
next

for i=1 to k
  response.write "<BR>"&b(i)
next
%>

  这个方法可用来从数据库中取随机记录,具体如下:
先建立数据集记录RS ,令 max=rs.recordcount 生成数组 b 后

str=join(b,"|")
str="|"&str&"|"

     n=1
   While not rs.eof
  
     if instr(str,"|"&n&"|")  then
        '进行操作
     end if
    n=n+1
   rs.movenext
   wend

 更多方法见: http://uptoday.cn/shtml/article1274.htm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值