ASP中随机函数Randomize的使用
生活随笔
收集整理的這篇文章主要介紹了
ASP中随机函数Randomize的使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
為什么80%的碼農都做不了架構師?>>> ??
Randomize初始化隨機數生成器。
Randomize [number]
number 參數可以是任何有效的數值表達式。
說明
Randomize 使用 number 參數初始化 Rnd 函數的隨機數生成器,賦給它新的種子值。如果省略 number,則使用系統計時器返回的值作為新的種子值。
如果不使用 Randomize,則第一次調用 Rnd 函數(無參數)時,它將使用相同的數字作為種子值,隨后使用最后生成的數值作為種子值。
注意 要重復隨機數的序列,請在使用數值參數調用 Randomize 之前,立即用負值參數調用 Rnd。使用相同的 number 值的 Randomize 不能重復先前的隨機數序列。
下面例子舉例說明如何使用 Randomize 語句:
例如: Dim MyValue, Response
Randomize '初始化隨機數生成器。
Do Until Response = vbNo
MyValue = Int((6 * Rnd) + 1)' 產生 1 到 6 之間的隨機數。
MsgBox MyValue
Response = MsgBox ("Roll again? ", vbYesNo)
Loop
Rnd 函數
返回一個隨機數。
Rnd[(number)]
number 參數可以是任意有效的數值表達式。
說明
Rnd 函數返回一個小于 1 但大于或等于 0 的值。number 的值決定了 Rnd 生成隨機數的方式:
如果 number 為 Rnd 生成
小于零 每次都相同的值,使用 number 作為種子。
大于零 序列中的下一個隨機數。
等于零 最近生成的數。
省略 序列中的下一個隨機數。
因每一次連續調用 Rnd 函數時都用序列中的前一個數作為下一個數的種子,所以對于任何最初給定的種子都會生成相同的數列。
在調用 Rnd 之前,先使用無參數的 Randomize 語句初始化隨機數生成器,該生成器具有基于系統計時器的種子。
要產生指定范圍的隨機整數,請使用以下公式:
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
這里, upperbound 是此范圍的上界,而 lowerbound 是此范圍內的下界。
注意 要重復隨機數的序列,請在使用數值參數調用 Randomize 之前,立即用負值參數調用 Rnd。使用同樣 number 值的 Randomize 不能重復先前的隨機數序列。
以前看過這方面的內容,今天又一次見到了,所以就總結一下,以后還要用呢!
下面給出一個實例來說明Randomize的用途:
解決防止表單重復提交的方法
表單文件formtest.asp<%
Randomize '初始代隨機數種子
num1=rnd() '產生隨機數num1
num1=int(26*num1)+65 '修改num1的范圍以使其是A-Z范圍的Ascii碼,以防表單名出錯
session("antry")="test"&chr(num1) '產生隨機字符串
%>
<form name="test" action="testact.asp" method="post">
你的名字:<input type='text' name='' size=30> '注意本行中使用了隨機表單項名
<input type='submit' value='提交'>
</form>
表單處理程序testact.asp
<%
teststr=request.form(session("antry"))
if teststr="" then
response.write "沒有填寫姓名或重復提交"
'由于用戶沒有填寫名字,或表單被重復提交(標志為session("antry")為空)引起
else
response.write teststr
session("antry")="" '提交成功,清空session("antry"),以防重復提交!!
end if
%>
在這里,你只需隨機化一個必填項目的表單項名即可,不必隨機化所有的表單項目。
轉載于:https://my.oschina.net/sucre/blog/296360
總結
以上是生活随笔為你收集整理的ASP中随机函数Randomize的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用 Strace 和 GDB 调试工具
- 下一篇: 优化Flash中的3D模型加载