帐号: 密码:
// 设为首页 // 收藏本站 // 请您留言 // 网址导航
远方教程-满足你的求知欲!
站内搜索:
HTML ASP PHP CSS DIV Dreamweaver Photoshop Word Excel PPT SEO技巧
您当前位置:网站首页 >> ASP教程 >> ASP基础入门 >> 阅读文章

ASP生成随机数方法汇总

来源:远方教程 作者:远方教程 发布时间:2014-12-01 查看次数:3186 访问[新版]

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

   函数RND()返回一个01之间的随机数。这里有这个函数的一个例子及其可能的返回值:

 

<%=RND()%>

 

0.7055643

 

  典型情况下,你更感兴趣的是用这个函数来返回处在一定范围内的整数。要返回一个大于等于0而小于某个特定整数的数字,你可以使用如下的语句:

 

<%=INT((upperbound+1)*RND)%>

  用你想产生的最大随机数代替表达式upperbound。例如,下面的脚本返回一个05之间的数,包括05

<%=INT(5+1)*RND)%>

  如果你想产生一个处在某个范围内的随机数,该范围有一个大于0的下界,可以使用如下的脚本:

<%=INT((upperbound – lowerbound + 1)*RND+lowerbound)%>

 

  例如,下面的脚本产生一个5075之间的随机数(包括5075):

 

<%=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()提供一个新的种子值。下面的例子显示了如何修改上面的例子,使其正确工作:

 

<%

 

RANDOMIZE

 

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()使用新的随机数序列。

   最后,如果你对函数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%>

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

打印 打印 | 关闭 关闭 评论
相关文章
图片新闻
站内搜索  
搜索
猜您喜欢  
最新更新  
阅读排行  
关于我们 | 联系方式 | 大事记 | 免责声明 | | 给我留言
部分广告源自金山联盟2345联盟 QQ咨询 站长之家QQ群:232617873
Copyright 2024 远方教程 © All Rights Reserved.

回顶部