Randomize()的作用是初始化隨機(jī)數(shù)種子,
站在用戶的角度思考問題,與客戶深入溝通,找到那坡網(wǎng)站設(shè)計(jì)與那坡網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋那坡地區(qū)。
它有個(gè)帶參數(shù)的版本
Randomize(double
seed)
seed是產(chǎn)生隨機(jī)數(shù)序列的一個(gè)標(biāo)號(hào),如果你不調(diào)用Randomize改變這個(gè)標(biāo)號(hào),默認(rèn)使用的是同一個(gè)序列,所以每次你啟動(dòng)程序生成的隨機(jī)數(shù)都是相同的,不帶參數(shù)的Randomize等價(jià)于Randomize(Timer),也就是使用系統(tǒng)時(shí)鐘作為隨機(jī)數(shù)種子
因?yàn)檫@個(gè)值隨程序啟動(dòng)或調(diào)用每次都不會(huì)相同,所以能實(shí)現(xiàn)產(chǎn)生不同的隨機(jī)數(shù)
返回大于等于0小于1之間的隨機(jī)數(shù)。
Visual Basic中隨機(jī)函數(shù)
格式:Rnd(數(shù)值表達(dá)式)
功能:求[0,1)之間的一個(gè)隨機(jī)數(shù)
語法:
Rnd[(number)]
如果 number 的值是 Randomize 生成
小于 0 ,每次都使用 number 作為隨機(jī)數(shù)種子得到的相同結(jié)果。
大于 0 ,以上一個(gè)隨機(jī)數(shù)為種子產(chǎn)生下一個(gè)隨機(jī)數(shù)。
等于 0 ,產(chǎn)生與最近生成的隨機(jī)數(shù)相同的隨機(jī)數(shù)。
省略, 以上一個(gè)隨機(jī)數(shù)為種子產(chǎn)生下一個(gè)隨機(jī)數(shù)。
說明
Rnd 函數(shù)返回小于 1 但大于或等于 0 的值。
number 的值決定了 Rnd 生成隨機(jī)數(shù)的方式。
對(duì)最初給定的種子都會(huì)生成相同的數(shù)列,因?yàn)槊恳淮握{(diào)用 Rnd 函數(shù)都用數(shù)列中的前一個(gè)數(shù)作為下一個(gè)數(shù)的種子。
在調(diào)用 Rnd 之前,先使用無參數(shù)的 Randomize語句初始化隨機(jī)數(shù)生成器(若帶參數(shù),則產(chǎn)生由參數(shù)對(duì)應(yīng)的一個(gè)特定序列的隨機(jī)數(shù)),該生成器具有根據(jù)系統(tǒng)計(jì)時(shí)器得到的種子。
為了生成某個(gè)范圍內(nèi)的隨機(jī)整數(shù),可使用以下公式:
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
這里,upperbound 是隨機(jī)數(shù)范圍的上限,而 lowerbound 則是隨機(jī)數(shù)范圍的下限。
注意 若想得到重復(fù)的隨機(jī)數(shù)序列,在使用具有數(shù)值參數(shù)的 Randomize 之前直接調(diào)用具有負(fù)參數(shù)值的 Rnd。使用具有同樣 number 值的 Randomize 是不會(huì)得到重復(fù)的隨機(jī)數(shù)序列的。
為了生成某個(gè)范圍內(nèi)的隨機(jī)整數(shù),可使用以下公式:
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
upperbound 是隨機(jī)數(shù)范圍的上限,而 lowerbound 則是隨機(jī)數(shù)范圍的下限。
Rnd 函數(shù)
返回一個(gè)包含隨機(jī)數(shù)值的 Single。
語法
Rnd[(number)]
可選的 number 參數(shù)是 Single 或任何有效的數(shù)值表達(dá)式。
返回值
如果 number 的值是 Rnd 生成
小于 0 每次都使用 number 作為隨機(jī)數(shù)種子得到的相同結(jié)果。
大于 0 序列中的下一個(gè)隨機(jī)數(shù)。
等于 0 最近生成的數(shù)。
省略 序列中的下一個(gè)隨機(jī)數(shù)。
說明
Rnd 函數(shù)返回小于 1 但大于或等于 0 的值。
number 的值決定了 Rnd 生成隨機(jī)數(shù)的方式。
對(duì)最初給定的種子都會(huì)生成相同的數(shù)列,因?yàn)槊恳淮握{(diào)用 Rnd 函數(shù)都用數(shù)列中的前一個(gè)數(shù)作為下一個(gè)數(shù)的種子。
在調(diào)用 Rnd 之前,先使用無參數(shù)的 Randomize 語句初始化隨機(jī)數(shù)生成器,該生成器具有根據(jù)系統(tǒng)計(jì)時(shí)器得到的種子。
Rnd
函數(shù)返回小于
1
但大于或等于
的值。
number
的值決定了
Rnd
生成隨機(jī)數(shù)的方式。
對(duì)最初給定的種子都會(huì)生成相同的數(shù)列,因?yàn)槊恳淮握{(diào)用
Rnd
函數(shù)都用數(shù)列中的前一個(gè)數(shù)作為下一個(gè)數(shù)的種子。
在調(diào)用
Rnd
之前,先使用無參數(shù)的
Randomize
語句初始化隨機(jī)數(shù)生成器,該生成器具有根據(jù)系統(tǒng)計(jì)時(shí)器得到的種子。
為了生成某個(gè)范圍內(nèi)的隨機(jī)整數(shù),可使用以下公式:
Int((upperbound
-
lowerbound
+
1)
*
Rnd
+
lowerbound)
這里,upperbound
是隨機(jī)數(shù)范圍的上限,而
lowerbound
則是隨機(jī)數(shù)范圍的下限。
Randomize
使用
number
參數(shù)初始化
Rnd
函數(shù)的隨機(jī)數(shù)生成器,賦給它新的種子值。如果省略
number,則使用系統(tǒng)計(jì)時(shí)器返回的值作為新的種子值。
如果不使用
Randomize,則第一次調(diào)用
Rnd
函數(shù)(無參數(shù))時(shí),它將使用相同的數(shù)字作為種子值,隨后使用最后生成的數(shù)值作為種子值。
注意
要重復(fù)隨機(jī)數(shù)的序列,請(qǐng)?jiān)谑褂脭?shù)值參數(shù)調(diào)用
Randomize
之前,立即用負(fù)值參數(shù)調(diào)用
Rnd。使用相同的
number
值的
Randomize
不能重復(fù)先前的隨機(jī)數(shù)序列。
Rnd[(number)]
number 的值決定了 Rnd 生成隨機(jī)數(shù)的方式
如果 number 的值 Rnd 生成
小于 0 每次都使用 number 作為隨機(jī)數(shù)種子得到的相同結(jié)果。
大于 0 序列中的下一個(gè)隨機(jī)數(shù)。
等于 0 最近生成的數(shù)。
省略 序列中的下一個(gè)隨機(jī)數(shù)。
====================
先討論沒有加randomize時(shí)
X小于0 如 rnd(-1) 以-1為種的隨機(jī)數(shù)永遠(yuǎn)相同
X大于0 如 rnd(1) 系統(tǒng)會(huì)先生成隨機(jī)數(shù)列表 有N個(gè)隨機(jī)數(shù) 你每執(zhí)行一次rnd(1)就獲取列表中下一個(gè)隨機(jī)數(shù)
比如有這么個(gè)列表 程序開始時(shí) 得到0.7055475 執(zhí)行第二次rnd(1)得到0.533424
第三次0.5795186 你關(guān)閉程序重新打開 第一次得到還是0.7055475
.7055475
.533424
.5795186
.2895625
.301948
而你說的X0 X0沒差別 是錯(cuò)的
Print Rnd(1)
Debug.Print Rnd(-2)
和
Debug.Print Rnd(-2)
Print Rnd(1)
結(jié)果是不一樣的
X等于0 最近生成的數(shù) 一般為科學(xué)型數(shù)值 這個(gè)值也是不變的
rnd(x) 省略x不寫 就和X0 效果一樣
=========================
Randomize 用 number 將 Rnd 函數(shù)的隨機(jī)數(shù)生成器初始化,該隨機(jī)數(shù)生成器給 number 一個(gè)新的種子值。如果省略 number,則用系統(tǒng)計(jì)時(shí)器返回的值作為新的種子值。
如果沒有使用 Randomize,則(無參數(shù)的)Rnd 函數(shù)使用第一次調(diào)用 Rnd 函數(shù)的種子值。
注意 若想得到重復(fù)的隨機(jī)數(shù)序列,在使用具有數(shù)值參數(shù)的 Randomize 之前直接調(diào)用具有負(fù)參數(shù)值的 Rnd。使用具有同樣 number 值的 Randomize 是不會(huì)得到重復(fù)的隨機(jī)數(shù)序列的。
一般在使用rnd獲取隨機(jī)數(shù) 都是
randomize
int(rnd*(上限-下限+1)+下限)
這2個(gè)函數(shù)的X都是省略不寫