VB隨機數問題,VB隨機數的問題。

2022-01-05 06:10:29 字數 1820 閱讀 8209

1樓:匿名使用者

private sub command1_click()randomize

text3.text = int(rnd * (val(text2.text) - val(text1.text))+0.5)+val(text1.text)))

''隨機*(上線-下線)+下線

'' 如果不用 +0.5 就永遠不會產生上限值,因為 rnd永遠》=0 & <1

end sub

2樓:匿名使用者

dim n1 as integer

dim n2 as integer

dim n as integer

dim k as integer

dim x as integer

dim i as integer

dim d() as integer

dim tf as boolean

n1 = cint(text1.text)n2 = cint(text2.text)n = n2 - n1 + 1

redim d(1 to n) as integerrandomize

k = 0

do while k < n

x = int((n * rnd) + n1)tf = false

for i = 1 to k

if x = d(i) then

tf = true

exit for

end if

next i

if not tf then

k = k + 1

d(k) = x

end if

loop

text3.text = ""

for i = 1 to n

text3.text = text3.text & d(i) & chr(13) + chr(10)

next i

vb隨機數的問題。

3樓:匿名使用者

我想你可能是沒有明白

1, int(x) 函式 它是取小於x的最大整數 如 a=int(-1.2) 那麼a的值是 -2 a=int(1.8) 那麼a的值是 1

2, rnd 函式 它是產生一個(0,1)間的數 注意不能產生0或1

這樣的話,這個問題就好解決了

int(rnd*(s-a+1)) 它產生的範圍是 0 到 s-a

int((s*rnd)+a) 它產生的範圍是 a 到 s+a-1

因此這兩種結果肯定是不一樣的.不知你為什麼說這兩種一樣

一般如果要產生一個[a,b]間的整數,注意這裡包括a,b. 其寫法這 int(rnd*(b-a+1)+a)

4樓:磊犇

沒太明白你的意思。

首先,定義資料型別有問題,

dim a,s,d,f,g as integer這樣寫不對,這種寫法只有變數g是整型變數,其它的就如同dim a,s,d,f 一樣。

要想定義這五個變數都是整型變數,應該這樣寫dim a as integer, s as integer, d as integer, f as integer, g as integer

再者,你寫的兩段隨機數程式的結果肯定是不同的啊,什麼叫「表示效果相同」?

比如:text1中給5,text2中給10第一段程式的d,f,g的取值範圍應該是閉區間[5,14]上的整數。

第一段程式的d,f,g的取值範圍應該是閉區間[0,5]上的整數。

不知能否可以幫到你。

vb問題 關於隨機數,一個vb問題 關於隨機數

放置一個label一個command然後把form的boarderstyle設定成3後貼上下面的 dim invalue dim arr as integer private sub command1 click 產生隨機數字 randomize dim rndnum as integerrndnu...

vb隨機數排序

在窗體中建立三個picture控制元件,並拉伸到適當大小,框中新增如下 執行點選窗體即可。private sub form click dim a 1 to 60 as integer,o 1 to 60 as integer,ji 1 to 60 as integer randomize num1...

vb程式設計如何產生1到1000的隨機數

不知道你要如何顯示,以下是在窗體上顯示的 private sub form click dim i as integer dim x as integer dim s as string for i 1 to 3 randomize x int rnd 1000 1 1 1 s s x next i...