国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

使用VBA中的Array函數(shù)生成不重復(fù)的隨機數(shù)

隨機數(shù)在計算機編程中有著廣泛的應(yīng)用,而生成不重復(fù)的隨機數(shù)又是一個常見的需求。之前我們介紹了使用VBA程序在Excel表格中生成不重復(fù)的數(shù)字的方法,現(xiàn)在我們將分享如何利用Array數(shù)組函數(shù)來實現(xiàn)這一目的

隨機數(shù)在計算機編程中有著廣泛的應(yīng)用,而生成不重復(fù)的隨機數(shù)又是一個常見的需求。之前我們介紹了使用VBA程序在Excel表格中生成不重復(fù)的數(shù)字的方法,現(xiàn)在我們將分享如何利用Array數(shù)組函數(shù)來實現(xiàn)這一目的。

打開VBA編輯器并插入模塊

首先,在電腦上打開Excel表格,然后使用【Alt F11】組合鍵打開VBA編輯器。在VBA編輯器的菜單欄上點擊【插入】、【模塊】,在模塊代碼框中輸入相應(yīng)的VBA程序代碼,然后按下【F5】鍵來運行程序。

```vba

Sub ArrayUse()

Dim i, j, k, x1, x2, x4, x5, str, str2, MyValue, MyArray(5)

On Error Resume Next '忽略可能出現(xiàn)的錯誤

MyValue InputBox("請輸入生成數(shù)組數(shù)量", "生成數(shù)組提示", 1) '生成數(shù)組數(shù)量輸入框

If MyValue > 1 Then

For x4 0 To (Int(MyValue) - 1) '執(zhí)行Int(MyValue)次循環(huán)

j 0 '初始化j為0

x2 0 '初始化x2為0

str "" '初始化str為空白

For x5 0 To 5

MyArray(x5) "" '數(shù)組的每個數(shù)初始化為空白

Next

Do

x1 0 'x1初始化為0

k Int(Rnd() * 33 1) '生成1-33的隨機數(shù)

For i 0 To 5

If MyArray(i) <> k Then

x1 x1 1 '不相等的次數(shù)增加1

End If

Next

If x1 6 Then '如果數(shù)組里的數(shù)與隨機數(shù)都不相等

MyArray(x2) k '把隨機數(shù)寫入數(shù)組

If str <> "" Then

str str ", " k '把隨機數(shù)k拼接到str中

End If

If str "" Then

str k '把隨機數(shù)k賦給str

End If

x2 x2 1 '數(shù)組寫入一個數(shù),x2增加1

End If

j j 1 '每執(zhí)行一次Do循環(huán),j增加1

If j > 200000 Or x2 6 Then '如果超過200000次或數(shù)組寫入6個數(shù)

If str2 <> "" Then

str2 str2 Chr(10) Chr(13) str '換行回車

End If

If str2 "" Then

str2 str '把str賦給str2

End If

Exit Do

End If

Loop

Next

MsgBox str2 '彈出生成的數(shù)組窗口

End If

End Sub

```

輸入數(shù)量生成隨機數(shù)組

通過以上程序,我們可以輸入要生成的隨機數(shù)組的數(shù)量,然后點擊【確定】按鈕即可生成包含不重復(fù)隨機數(shù)的數(shù)組。

程序函數(shù)及代碼釋義

1. MyArray(5)數(shù)組包含6個數(shù),從第0個開始到第5個結(jié)束;Array前綴可以根據(jù)個人喜好更改。

2. 在給數(shù)組賦值時,應(yīng)與數(shù)組中的位置對應(yīng),例如MyArray(1)10將10賦給數(shù)組的第2位,位置可以是變量。

3. 在重復(fù)使用中間變量之前需要初始化,以避免后續(xù)數(shù)據(jù)生成錯誤。

4. Int為取整函數(shù),Rnd為生成大于等于0且小于1的隨機數(shù),Chr(10)為換行符,Chr(13)為回車符。

5. 程序逐一比較生成的隨機數(shù)與數(shù)組中的數(shù)(如:If MyArray(i) <> k Then),當(dāng)不相等時中間變量x1會自動加1,滿足條件時將隨機數(shù)賦給數(shù)組,無需使用COUNTIF函數(shù)判斷。

6. 程序順序執(zhí)行,因此(If str <> "" Then…End If)和(If str "" Then…End If)的順序不能顛倒,否則會出錯。

通過以上方法,我們可以利用VBA中的Array函數(shù)生成不重復(fù)的隨機數(shù),為計算機編程提供更多可能性和靈活性。

標(biāo)簽: