关闭

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

标签: 数据库aspfunctionjoin存储
891人阅读 评论(0) 收藏 举报

<%
   '生成 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
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:13050次
    • 积分:243
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:0篇
    • 译文:0篇
    • 评论:9条
    最新评论
    我的网络