有一个特殊的语句可以帮助解决这个问题。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 %>
这段脚本在0到9之间产生100个随机数。它跟踪对于每一个值有多少个随机数产生。最后,它打印一个代表结果的条形图。