如何在vb中實現永不重複的隨機數

時間 2022-01-01 23:54:08

1樓:匿名使用者

理論上是可以無窮大,但是受資料型別結構限制。例如單精度型別的長度範圍在3.402823e+38,如果拋開電腦資料結構佔位精度和cpu消耗,理論上總有窮舉完的時候。

但通常我們不可能把它真正的窮舉完。你在窗體內置立乙個list1和乙個command1。

在窗體模組中貼上如下**:

private switch as boolean

private sub command1_click()

if switch then

form_load

else

command1.caption = "停止(&p)"

switch = true: call getrands

end if

end sub

private sub form_load()

randomize timer

with me

.width = 4600

.height = 5000

.caption = "隨機數發生器"

end with

list1.move 120, 120, 2415, 4200

command1.move 2640, 120, 1575, 600

command1.caption = "開始(&s)"

switch = false

end sub

sub getrands()

dim d as object, v!

set d = createobject("scripting.dictionary")

dov = rnd

if d.exists(v) = false then

d.add v, v

list1.additem v

end if

me.caption = "正在生產隨機數:" & iif(v mod 2 = 0, ".", "..")

doevents

loop until switch = false

end sub

2樓:匿名使用者

這個怎麼說呢

10個數里 隨機取11次 總會有重複的

用vb怎麼產生不重複的隨機數?

3樓:

private sub command1_click()randomize

a = int((10 - 0 + 1) * rnd + 0)print a

end sub

4樓:匿名使用者

dim a(1 to 10) as integerprivate sub command1_click()static n as integer

n = n + 1

if n > 10 then exit subdox = int((10 - 1 + 1) * rnd + 1)j = true

for i = 1 to n - 1

if x = a(i) then j = false: exit for

next i

loop until j

a(n) = x

command1.caption = a(n)end sub

private sub form_load()randomize

end sub

5樓:

rnd 函式

返回乙個包含隨機數值的 single。

語法rnd[(number)]

可選的 number 引數是 single 或任何有效的數值表示式。

返回值如果 number 的值是 rnd 生成

小於 0 每次都使用 number 作為隨機數種子得到的相同結果。

大於 0 序列中的下乙個隨機數。

等於 0 最近生成的數。

省略 序列中的下乙個隨機數。

說明rnd 函式返回小於 1 但大於或等於 0 的值。

number 的值決定了 rnd 生成隨機數的方式。

對最初給定的種子都會生成相同的數列,因為每一次呼叫 rnd 函式都用數列中的前乙個數作為下乙個數的種子。

在呼叫 rnd 之前,先使用無引數的 randomize 語句初始化隨機數生成器,該生成器具有根據系統計時器得到的種子。

為了生成某個範圍內的隨機整數,可使用以下公式:

int((upperbound - lowerbound + 1) * rnd + lowerbound)

這裡,upperbound 是隨機數範圍的上限,而 lowerbound 則是隨機數範圍的下限。

注意 若想得到重複的隨機數序列,在使用具有數值引數的 randomize 之前直接呼叫具有負引數值的 rnd。使用具有同樣 number 值的 randomize 是不會得到重複的隨機數序列的。

j**a中怎樣讓隨機數不重複

6樓:

最簡單的辦法就是將產生的隨機數放入乙個set中,然後判斷set的size就好。set中是不能存在重複數的。

7樓:伏松桖

你可以把當前時間作為隨機數的就不會重複了.

8樓:趙晴優

如果用日期做隨機數,就不會有重複的了

9樓:手機使用者

3, 4, 5, 6, 7, 8, 9];

void swap(int* a, int* b)void rand_n(int len, n)for (int i = 0; i < n; i++)}int main()

10樓:匿名使用者

生成隨機數時,重新整理。**很簡單

matlab中怎樣生成乙個區間內不重複的隨機數?

11樓:草是一顆植物

即產生隨機排列:

p = randperm(n) returns

a random permutation of the integers 1:n.

所以要產生[16 31]的隨機排列,可以執行:

randperm(31-16+1)+15

隨機數是專門的隨機試驗的結果。在統計學的不同技術中需要使用隨機數,比如在從統計總體中抽取有代表性的樣本的時候,或者在將實驗動物分配到不同的試驗組的過程中,或者在進行蒙特卡羅模擬法計算的時候等等。

在統計學的不同技術中需要使用隨機數,比如在從統計總體中抽取有代表性的樣本的時候,或者在將實驗動物分配到不同的試驗組的過程中,或者在進行蒙特卡羅模擬法計算的時候等等。

產生隨機數有多種不同的方法。這些方法被稱為隨機數發生器。隨機數最重要的特性是:它所產生的後面的那個數與前面的那個數毫無關係。

真正的隨機數是使用物理現象產生的:比如擲錢幣、骰子、轉輪、使用電子元件的噪音、核裂變等等。這樣的隨機數發生器叫做物理性隨機數發生器,它們的缺點是技術要求比較高。

在實際應用中往往使用偽隨機數就足夠了。這些數列是「似乎」隨機的數,實際上它們是通過乙個固定的、可以重複的計算方法產生的。計算機或計算器產生的隨機數有很長的週期性。

用vb怎樣生成10個不重複的(1到10)隨機數?

12樓:匿名使用者

vb生成10個不重複的隨機數**:private sub command1_click()dim a(9) as integer

for i = 0 to 9

goto way1

end if

next p

end if

print a(i)

next i

end sub

13樓:

private sub command1_click()dim a(9) as integer

for i = 0 to 9

way1:

randomize

a(i) = int(rnd() * 10) + 1if i > 1 then

for p = 0 to i - 1

if a(p) = a(i) then 『與前面的對比,如果有重複,重新隨機

goto way1

end if

next p

end if

print a(i) 』列印

next i

end sub

如何在vb中引用,如何在VB中引用ADO

在vb6.0中引用ado 通過選擇 工程 選單中的 引用.來為 ado 物件庫新增乙個引用,然後在 引用.對話方塊中選擇 microsoft activex data objects 2.0 library 點上圖確定。工程就引用了ado。執行 示例 private sub command1 cli...

如何在vb中新增日期控制項,如何在VB中新增日期控制項

datetimepicker控制項使您可以提供格式化的日期字段,使得進行日期選擇很容易。另外,使用者還可以從類似於monthview控制項的下拉式日曆介面中選擇日期。datetimepicker控制項,有兩種操作模式 下拉式日曆模式 預設 允許使用者顯示一種能夠用來選擇日期的下拉式日曆。時間格式模式...

如何在c 中實現fullstack

c stack 堆疊 是乙個容器類的改編,為程式設計師提供了堆疊的全部功能,也就是說實現了乙個先進後出 filo 的資料結構。操作比較和分配堆疊empty 堆疊為空則返回真pop 移除棧頂元素push 在棧頂增加元素size 返回棧中元素數目top 返回棧頂元素你可以自己編寫乙個清空函式empty ...

如何在EXCEL中實現禁止複製貼上

1 表設計完成之後,首先右鍵點選右上角的空白處,實現 全選。2 在右鍵快捷選單中選擇 設定單元格格式 在開啟的介面中選擇 保護 將裡面的 鎖定 勾選項去掉並儲存。3 然後,選擇需要保護的單元格區域,同樣右鍵選單選擇 設定單元格格式 在開啟的介面中選擇 保護 將裡面的 鎖定 勾選項加上並儲存。4 接著...

如何在excel單元格中實現換行

按照下面的方法換行試試 方法一 強制換行,alt enter 組合鍵盤 方法二 自動換行,擇要進行自動換行的單元格,然後點選選單的 開始 裡面的 自動換行 紅樓夢 是一部內涵豐厚的作品,好了歌 和 紅樓夢十二支曲 提示著賈寶玉所經歷的三重悲劇。作者將賈寶玉和一群身份 地位不同的少女放在大觀園這個既是...