ASP中Randomize隨機函數的使用

Randomize
初始化隨機數生成器。session

Randomize [number]dom

number 參數能夠是任何有效的數值表達式。函數

說明
Randomize 使用 number 參數初始化 Rnd 函數的隨機數生成器,賦給它新的種子值。若是省略 number,則使用系統計時器返回的值做爲新的種子值。oop

若是不使用 Randomize,則第一次調用 Rnd 函數(無參數)時,它將使用相同的數字做爲種子值,隨後使用最後生成的數值做爲種子值。post

注意 要重複隨機數的序列,請在使用數值參數調用 Randomize 以前,當即用負值參數調用 Rnd。使用相同的 number 值的 Randomize 不能重複先前的隨機數序列。orm

下面例子舉例說明如何使用 Randomize 語句:ci

例如:Dim MyValue, Response
Randomize \'初始化隨機數生成器。
Do Until Response = vbNo
   MyValue = Int((6 * Rnd) + 1)\' 產生 1 到 6 之間的隨機數。
   MsgBox MyValue
   Response = MsgBox (\"Roll again? \", vbYesNo)
Loop字符串

 

Rnd 函數
返回一個隨機數。input

Rnd[(number)]it

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\"),以防重複提交!![Page] end if %>

相關文章
相關標籤/搜索