vba 產生不重複的隨機數問題,VBA 產生不重複的隨機數問題

2022-03-09 00:35:45 字數 1469 閱讀 2378

1樓:安全管理人

產生20個1-100之間的不重複隨機數

public sub rndnumbernorepeat1()

dim rndnumber, temp(20), i, k, maxrec as integer

randomize (timer) '初始化隨機數生成器

maxrec = 100

' 從a21開始輸出隨機數

k = 0

do while k < 20

rndnumber = int(maxrec * rnd) + 1

temp(k) = rndnumber

cells(k + 21, 1) = rndnumber

for i = 0 to k - 1

if temp(i) = rndnumber then exit for

next i

if i = k then k = i + 1

'msgbox "隨機數:" & rndnumber

loop

end sub

2樓:

哦,rand是產生隨即數的函式,不過你需要一個隨即種子,否則每次開始執行的隨機結果會相同的。判斷如果重複了就自動再次生成。。

不過感覺這個效率不是很高,因為不停的要判斷重複。所以效率很定低下。你可以一次產生1-10000之內的隨機數字1000個。

這樣再從中去處不重複的10個,然後根據對應關係再影射到100-300之間,應該就很好了。

3樓:匿名使用者

是要整數嗎?

試下這個

sub abc()

dim a(9), b, c as integerfor b = 0 to 9

ag: a(b) = 100 + round(rnd() * 200, 0)

if b > 0 then

for c = 0 to b - 1

if a(b) = a(c) then

goto ag

exit for

end if

next c

end if

next b

end sub

執行後陣列a(9)裡面放10個不相同的100-300之間的隨機數

vba ppt中抽取隨機數怎樣改才不會出現重複數,求大神幫忙 25

4樓:不做美女很多年

我說一下思路,

1、用陣列存放抽取的題目 a(1)、a(2)........

2、用條件迴圈控制,抽取題目時(比如第4題),和已抽取題目1-3比較,如果不相等,就是第4題;如果相等,此題不要,產生下一個隨機數,再抽,直到不相等才為第4題。

請教,在excel vba中如何產生1-50之間的10個不重複的隨機數,並存放在a1-a10單元格中?謝謝。

c生成隨機數,要求1到33之間不重複的隨機數,要最簡單

很早以前用過那隨機數的方法,不能保證不重,只能生成一個記下來再生成一個匹配一下 int xl new int int tmp 0 string output the numbers are random rd new random for int i 0 i 33 i for int i 0 i 6...

c語言產生隨機數的問題

直接使用c語言的庫函式srand和rand就可以了,最簡單隨機數發生器就是平均分佈的。首先使用你金鑰匯出一個整數,假設為i。然後srand i 後面不斷呼叫rand就可以了。所以你採用rand 32767所產生的隨機數就已經是平均分佈的啦。每次使用srand 設定種子後並非之產生了一個隨機數,而是產...

如何產生真正的隨機數,真的有能產生完全隨機數的演算法嗎?

產生隨機數有多種不同的方法。這些方法被稱為隨機數發生器。隨機數最重要的特性是它在產生是後面的那個數與前面的那個數毫無關係。真正的隨機數是使用物理現象產生的 比如擲錢幣 骰子 轉輪 使用電子元件的噪音 核裂變等等。這樣的隨機數發生器叫做物理性隨機數發生器,它們的缺點是技術要求比較高。在實際應用中往往使...