VBS生成隨機數

2022-05-17 01:35:54 字數 1523 閱讀 5626

自動化工作中常常遇到因資料重複使業務無法提交的問題,我想到了利用隨機數來解決這個問題,下面對vbs生成隨機數做下解析:

一、randomize語句

randomize :初始化隨機數生成器。

語法 :randomize [number] 

可選的 number 引數是 variant 或任何有效的數值表示式。 

說明:

randomize 用 number 將 rnd 函式的隨機數生成器初始化,該隨機數生成器給 number 乙個新的種子值。如果省略 number,則用系統計時器返回的值作為新的種子值。 

如果沒有使用 randomize,則(無引數的)rnd 函式使用第一次呼叫 rnd 函式的種子值。 

二、rnd函式

語法:rnd[(number)]

可選的 number 引數是 single 或任何有效的數值表示式。

函式返回值:

如果 number 的值小於 0, 則每次都使用 number 作為隨機數種子返回相同結果。

如果 number 的值大於 0, 則返回序列中的下乙個隨機數。

如果 number 的值等於 0, 則返回最近生成的數。

如果省略 number 引數則返回序列中的下乙個隨機數。(即預設number大於0)

說明:

rnd 函式返回小於 1 但大於或等於 0 的值。

number 的值決定了 rnd 生成隨機數的方式。

對最初給定的種子都會生成相同的數列,因為每一次呼叫 rnd 函式都用數列中的前乙個數作為下乙個數的種子。

在呼叫 rnd 之前,先使用無引數的 randomize 語句初始化隨機數生成器,該生成器具有根據系統計時器得到的種子。

為了生成某個範圍內的隨機整數,可使用以下公式:

int((upperbound - lowerbound + 1) * rnd + lowerbound)

這裡,upperbound 是隨機數範圍的上限,而 lowerbound 則是隨機數範圍的下限。

j舉例如下:

funtion getrandommath(m,n)

randomize

getrandommath = int(((n-m+1) * rnd) + m)

end function

msgbox getrandommath(20,30)

注意:若想得到重複的隨機數序列,在使用具有數值引數的 randomize 之前直接呼叫具有負引數值的 rnd。使用具有同樣 number 值的 randomize 是不會得到重複的隨機數序列的。

三、獲取隨機整數

num=randomnumber.value(startnum,endnum)  或者num=randomnumber.value(parameter)

隨機生成隨機數

現畫乙個command命令按鈕,進行貼上。private sub command1 click show me scale 0,0 18,8 me.auto redraw true me.draw mode 2 circle 3,4 3,vb red me.auto redraw false lin...

隨機數生成

原型 void srand unsigned seed 用法 srand和rand 配合使用產生偽隨機數序列。rand函式在產生隨機數前,需要系統提供的生成偽隨機數序列的種子,rand根據這個種子的值產生一系列隨機數。如果系統提供的種子沒有變化,每次呼叫rand函式生成的偽隨機數序列都是一樣的。sr...

生成隨機數

1 生成num位數驗證碼 用於簡訊驗證功能 public static random rand new random public static string getcode int num result,s k return result random r new random 建立乙個隨機數生成...