vb.net隨機種子 vb隨機數(shù)字的代碼

VB.NET中為什么RND()前必須初始化RANDOMIZE

Randomize()的作用是初始化隨機數(shù)種子,

十載的東河網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。營銷型網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整東河建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)建站從事“東河網(wǎng)站設(shè)計”,“東河網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。

它有個帶參數(shù)的版本

Randomize(double seed)

seed是產(chǎn)生隨機數(shù)序列的一個標號,如果你不調(diào)用Randomize改變這個標號,默認使用的是同一個序列,所以每次你啟動程序生成的隨機數(shù)都是相同的,不帶參數(shù)的Randomize等價于Randomize(Timer),也就是使用系統(tǒng)時鐘作為隨機數(shù)種子

因為這個值隨程序啟動或調(diào)用每次都不會相同,所以能實現(xiàn)產(chǎn)生不同的隨機數(shù)

什么是vb的隨機數(shù)和種子??

VB的隨機數(shù)即使用Rnd函數(shù)生成的隨機數(shù)值。種子,為初始值,用來生成偽隨機數(shù)字。

Rnd 函數(shù),返回一個包含隨機數(shù)值的 Single。

對最初給定的種子都會生成相同的數(shù)列,因為每一次調(diào)用 Rnd 函數(shù)都用數(shù)列中的前一個數(shù)作為下一個數(shù)的種子。

在調(diào)用 Rnd 之前,先使用無參數(shù)的 Randomize 語句初始化隨機數(shù)生成器,該生成器具有根據(jù)系統(tǒng)計時器得到的種子。

種子,為初始值,用來生成偽隨機數(shù)字。例如, Randomize 語句創(chuàng)建一種子值供 Rnd 函數(shù)使用,以接著創(chuàng)建唯一偽隨機數(shù)列。

Randomize 語句,初始化隨機數(shù)生成器。

說明

Randomize 用 number 將 Rnd 函數(shù)的隨機數(shù)生成器初始化,該隨機數(shù)生成器給 number 一個新的種子值。如果省略 number,則用系統(tǒng)計時器返回的值作為新的種子值。

如果沒有使用 Randomize,則(無參數(shù)的)Rnd 函數(shù)使用第一次調(diào)用 Rnd 函數(shù)的種子值。

Randomize 語句示例

本示例用 Randomize 語句初始化隨機數(shù)生成器。由于忽略了數(shù)值參數(shù), 所以

Randomize 用 Timer 函數(shù)的返回值作為新的隨機數(shù)種子值。

Dim MyValue

Randomize ? ' 對隨機數(shù)生成器做初始化的動作。

MyValue = Int((6 * Rnd) + 1) ? ' 生成 1 到 6 之間的隨機數(shù)值。

《VB.NET》中的“Randomize(x)”和“Rnd(x)”

Rnd[(number)]

number

的值決定了

Rnd

生成隨機數(shù)的方式

如果

number

的值

Rnd

生成

小于

每次都使用

number

作為隨機數(shù)種子得到的相同結(jié)果。

大于

序列中的下一個隨機數(shù)。

等于

最近生成的數(shù)。

省略

序列中的下一個隨機數(shù)。

====================

先討論沒有加randomize時

X小于0

rnd(-1)

以-1為種的隨機數(shù)永遠相同

X大于0

rnd(1)

系統(tǒng)會先生成隨機數(shù)列表

有N個隨機數(shù)

你每執(zhí)行一次rnd(1)就獲取列表中下一個隨機數(shù)

比如有這么個列表

程序開始時

得到0.7055475

執(zhí)行第二次rnd(1)得到0.533424

第三次0.5795186

你關(guān)閉程序重新打開

第一次得到還是0.7055475

.7055475

.533424

.5795186

.2895625

.301948

而你說的X0

X0沒差別

是錯的

Print

Rnd(1)

Debug.Print

Rnd(-2)

Debug.Print

Rnd(-2)

Print

Rnd(1)

結(jié)果是不一樣的

X等于0

最近生成的數(shù)

一般為科學(xué)型數(shù)值

這個值也是不變的

rnd(x)

省略x不寫

就和X0

效果一樣

=========================

Randomize

number

Rnd

函數(shù)的隨機數(shù)生成器初始化,該隨機數(shù)生成器給

number

一個新的種子值。如果省略

number,則用系統(tǒng)計時器返回的值作為新的種子值。

如果沒有使用

Randomize,則(無參數(shù)的)Rnd

函數(shù)使用第一次調(diào)用

Rnd

函數(shù)的種子值。

注意

若想得到重復(fù)的隨機數(shù)序列,在使用具有數(shù)值參數(shù)的

Randomize

之前直接調(diào)用具有負參數(shù)值的

Rnd。使用具有同樣

number

值的

Randomize

是不會得到重復(fù)的隨機數(shù)序列的。

一般在使用rnd獲取隨機數(shù)

都是

randomize

int(rnd*(上限-下限+1)+下限)

這2個函數(shù)的X都是省略不寫

vb.net程序,利用隨機函數(shù)產(chǎn)生100個1到100之間的整數(shù),求其中的最大最小值。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Randomize() '產(chǎn)生隨機數(shù)種子 以防止每次生成結(jié)果都一樣

Dim a(100) As Integer '聲明數(shù)組存放數(shù)據(jù) 用來保存隨機數(shù)結(jié)果

Dim max As Integer, min As Integer '聲明兩個變量存最大值和最小值

min = 1000 : max = 0 '設(shè)置初值

For i = 0 To 99 '循環(huán)100次

a(i) = Int(Rnd() * 1000 + 1) '用rnd生成一個隨機數(shù) 由于rnd范圍為0-1之間的小數(shù).所以*1000設(shè)置他的范圍為0到999之間 加1變成1到1000之間

If a(i) = max Then max = a(i) '如果當前數(shù)值大于最大值的變量就保存

If a(i) = min Then min = a(i) '如果當前數(shù)值小于最小值的變量就保存

Next

MsgBox("最大值為" max)

MsgBox("最小值為" min)

End Sub

本文名稱:vb.net隨機種子 vb隨機數(shù)字的代碼
URL鏈接:http://bm7419.com/article12/ddcohgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、、網(wǎng)站導(dǎo)航、微信小程序手機網(wǎng)站建設(shè)、網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司