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 函式示例
本示例使用 Rnd 函式隨機生成一個 1 到 6 的隨機整數。
Dim MyValue
MyValue = Int((6 * Rnd) + 1) " 生成 1 到 6 之間的隨機數值 ,這裡的int 是把後面產生的小數轉換成整數!
由於Rnd是[0,1),(6*Rnd)+1為[0,7)。int是求不大於number 的最大整數,所以得出1~6的隨機數
拓展資料:
隨機數字:
(1)生成隨機數比較簡單,=rand()即可生成0-RAND_MAX之間的隨機數;(#define RAND_MAX 0x7fffu)
(2)如果要是整數,就用=int(rand()%10),表示0至9的整數,以此類推;
(3)如果要生成a與b之間的隨機實數,就用=rand()%(b-a+1)+a,就能產生固定位數的整數了,以此類推;
注意:如果要使用函式rand()生成一隨機數,並且使之不隨單元格計算而改變,可以在編輯欄中輸入“=rand()”,保持編輯狀態,然後按F9,將公式永久性地改為隨機數。不過,這樣只能一個一個的永久性更改,如果數字比較多,也可以全部選擇之後,另外選擇一個合適的位置貼上,貼上的方法是點選右鍵,選擇“選擇性貼上”,然後選擇“數值”,即可將之前複製的隨機數公式產生的數值(而不是公式)複製下來。
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 函式示例
本示例使用 Rnd 函式隨機生成一個 1 到 6 的隨機整數。
Dim MyValue
MyValue = Int((6 * Rnd) + 1) " 生成 1 到 6 之間的隨機數值 ,這裡的int 是把後面產生的小數轉換成整數!
由於Rnd是[0,1),(6*Rnd)+1為[0,7)。int是求不大於number 的最大整數,所以得出1~6的隨機數
拓展資料:
隨機數字:
(1)生成隨機數比較簡單,=rand()即可生成0-RAND_MAX之間的隨機數;(#define RAND_MAX 0x7fffu)
(2)如果要是整數,就用=int(rand()%10),表示0至9的整數,以此類推;
(3)如果要生成a與b之間的隨機實數,就用=rand()%(b-a+1)+a,就能產生固定位數的整數了,以此類推;
注意:如果要使用函式rand()生成一隨機數,並且使之不隨單元格計算而改變,可以在編輯欄中輸入“=rand()”,保持編輯狀態,然後按F9,將公式永久性地改為隨機數。不過,這樣只能一個一個的永久性更改,如果數字比較多,也可以全部選擇之後,另外選擇一個合適的位置貼上,貼上的方法是點選右鍵,選擇“選擇性貼上”,然後選擇“數值”,即可將之前複製的隨機數公式產生的數值(而不是公式)複製下來。