网店  商城  街招  黄页  地图  诗歌  友链  交友
账号密码 注册
  新圩网 >> 新圩论坛 >> 百科聚焦 >> 电脑窍门 >> 我要发贴
普通主题 
查看:1676 | 回复:0   【  】【打印】 【前贴】【后贴
2014-05-21 09:07:31


主题:8
回复:18
积分:34

发私信
 

asp生成随机数

'=================================================
'在制定的范围内,提供一个随机数字
'randomize语句的强制性很重要哦
'=================================================

函数rnd是一个非常重要的函数。如果你想建立一个随机的问候语,一个日期的随机提示,或者甚至一个游戏,你将要使用这个函数。

函数rnd返回一个0到1之间的随机数。这里有这个函数的一个例子:
<%=rnd()%>
其可能的返回值:
0.7055643

典型情况下,你更感兴趣的是用这个函数来返回处在一定范围内的整数。要返回一个大于等于0而小于某个特定整数的数字,你可以使用如下的语句:
<%=int((upperbound+1)*rnd)%>

用你想产生的最大随机数代替表达式upperbound。例如,下面的脚本返回一个0和5之间的数,包括0和5:
<%=int(5+1)*rnd)%>

如果你想产生一个处在某个范围内的随机数,该范围有一个大于0的下界,可以使用如下的脚本:
<%=int((upperbound - lowerbound + 1)*rnd+lowerbound)%>
例如,下面的脚本产生一个50到75之间的随机数:
<%=int((75-50+1)*rnd+50)%>
无论何时使用函数rnd,它将以同样的顺序返回同样的随机数,这也许另你吃惊。考虑如下的例子:
<%
pick_greeting=int((2+1)*rnd)
select case pick_greeting
case 0
greeting="welcome!"
case 1
greeting="hello!"
case 2
greeting="happy to see you!"
end select
%>
<%=greeting%>
这个脚本建立并打印一个随机的问候语。但是,它有可能并不按你想象的方式工作。无论何时有人下载了包含这段脚本的网页,将有同样的随机问候语被打印。如果有人多次回到这个网页,他或她将得到同样的问候。一个随机数产生了,但是每次都是同样的随机数。有一个特殊的语句可以帮助解决这个问题。randomize语句用来强制函数rnd使用一个新的随机数序列。randomize语句通过计算机的系统计时器,为函数rnd提供一个新的种子值。
最后,如果你对函数rnd所产生的数值的分布感到好奇,你可以用下面的脚本来确定它:
<%
const upperbound=9,iterations=100
redim dist(upperbound)
randomize
for i=1 to iterations
rnd_num=int((upperbound+1)*rnd)
dist(rnd_num)=dist(rnd_num)&"#"
next
for i=0 to upperbound
%>
<%=i&":"&dist(i)%><br>
<%next%>   

这段脚本在0到9之间产生100个随机数。它跟踪对于每一个值有多少个随机数产生。最后,它打印一个代表结果的条形图。


 
      回复主贴
您需要登录后才能参与回复


Copyright © 2010-2014 www.537406.com 桂ICP备14003809号 www.jtdx.cn All Right Reserved
新圩网友交流聊天QQ总群 8287305 新圩交友娱乐QQ总群
 
本站是严谨而开放的信息平台,其内容为会员自行收集发布,如果您认为有关内容不适宜在本站展示,或者展示得不正确,请及时通知管理员删除或修改