簡介
Visual Basic中隨機函式
格式:Rnd(<數值表達式>)
功能:求[0,1)之間的一個隨機數
語法:
Rnd[(number)]
如果 number 的值是 Randomize 生成
小於 0 ,每次都使用 number 作為隨機數種子得到的相同結果。
大於 0 ,以上一個隨機數為種子產生下一個隨機數。
等於 0 ,產生與最近生成的隨機數相同的隨機數。
省略, 以上一個隨機數為種子產生下一個隨機數。
說明
Rnd 函式返回小於 1 但大於或等於 0 的值。
number 的值決定了 Rnd 生成隨機數的方式。
對最初給定的種子都會生成相同的數列,因為每一次調用 Rnd 函式都用數列中的前一個數作為下一個數的種子。
在調用 Rnd 之前,先使用 無參數的 Randomize語句初始化隨機數生成器(若帶參數,則產生由參數對應的一個特定序列的隨機數),該生成器具有根據系統計時器得到的種子。
為了生成某個範圍內的隨機整數,可使用以下公式:
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
這裡,upperbound 是隨機數範圍的上限,而 lowerbound 則是隨機數範圍的下限。
注意 若想得到重複的隨機數序列,在使用具有數值參數的 Randomize 之前直接調用具有負參數值的 Rnd。使用具有同樣 number 值的 Randomize 是不會得到重複的隨機數序列的。
函式示例
本示例使用 Rnd 函式隨機生成一個 1 到 6 的隨機整數。
Dim MyValue
MyValue = Int((6 * Rnd) + 1) ' 生成 1 到 6 之間的隨機數值 ,這裡的int 是把後面產生的小數轉換成整數!
由於Rnd是[0,1),(6*Rnd)+1為[1,7)。int是求不大於number 的最大整數,所以得出1~6的隨機數
資料庫
"SELECT * from data where ORDER BY right(cstr(rnd(-int(rnd(-timer())*100+id)))*1000*Now(),2)
每次刷新重新排序數據不重複