欢迎光临
我们一直在努力

利用随机函数获取某一范围的整数及其应用

建站超值云服务器,限时71元/月

[“酷闪”原创]

我们在编写asp的过程中经常会遇到需要取得一个整数范围内的一个随机整数,利用vbscript内建的rnd()函数可以很轻松

的得到这样的整数,假如要从[min,max]这个整数范围内随机抽取一个整数,具体公式如下:

随机整数=int((max-min+1)*rnd()+min)

仔细思考一下上面的公式,应该很快能理解其中的含义。

下面就以“酷闪”首页“自助链接”为例,来说明随机抽取整数在数据库查询中的一个用途。

构想

“酷闪”首页提供自助连接,允许自行加入某网站连接。

一般的“自助连接”只是在首页显示最新加入的若干个连接,然后另外提供一个浏览所有连接的页面,很多情况下,只有

不多的浏览者去打开该页去查询以前加入的连接,这样就使得比较早加入的连接基本没有被点击的机会。根据这种情况采

取以下方案:在首页显示10个连接,其中前3个是最新加入的连接,后7个从以前加入的连接中随机抽取7个显示。

具体实现

用access数据库保存用户信息(网站名称,网址,简要说明),建立add.asp(加入操作页面),

改造首页加入显示程序段。这里只对显示程序段给以说明。

假设access数据库文件为link.mdb,并已经有超过20个的连接信息,其中自助连接信息放在表selflink中,包含字段:

id,网站名称,地址,简要说明,加入时间

程序代码

首页打开数据库,并将所有记录按时间倒序排列,新加入的在前

set con=server.createobject("adodb.connection")

con.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("link.mdb")

set rst=server.createobject("adodb.recordset")

rst.open "select * from selflink order by 加入时间desc",con,3,1,1

显示最新加入的3个连接

rst.movefirst

for i=1 to 3

response.write "<a href="&rst("地址")&">"&rst("网站名称")&"</a><br>"

rst.movenext

next

从第4个到第20个记录中随机抽取7个

randomize

for i=1 to 7

rndtemp=rst.recordcount-1

curorrnd=int((rndtemp-3+1)*rnd()+3))

rst.move curorrnd,1

response.write "<a href="&rst("地址")&">"&rst("网站名称")&"</a><br>"

next

关闭数据库,清除内存

rst.close

con.close

set rst=nothing

set con=nothing

此例在win98+pws上调试成功,但在nt+iis时指令:rst.move curorrnd,1可能会遇到困难,可做如下改动:

rst.movefirst

rst.move curorrnd

怎么样不是很难吧,试试看吧!:)加上这段程序后,每次刷新首页都能看到不同的连接。因为随机函数的几率是一样

的,这样才使那些加入“自助连接”的朋友有了相同的对待。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 利用随机函数获取某一范围的整数及其应用
分享到: 更多 (0)