ASP中隨機函數Randomize的使用
2009-08-22 19:19
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 %> 在這裏,你只需隨機化一個必填項目的表單項名即可,不必隨機化所有的表單項目。 原文地址:http://hgangok.blog.163.com/blog/static/28352700201001844628427/ |