vb隨機數問題,vb 隨機數問題

2022-01-05 05:57:44 字數 5948 閱讀 4564

1樓:

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

for i = 1 to 10

for j = 1 to 10

a(i) = int(rnd * 100)a(j) = int(rnd * 100)if a(i) = a(j) then a(i) = a(i) + 1

next

next

for i = 1 to 10

for j = 1 to 9

if a(i) > a(j) then t = a(i): a(i) = a(j): a(j) = t

next

next

for i = 1 to 10

text1.text = a(1)

text2.text = a(2)

text3.text = a(3)

text4.text = a(4)

text5.text = a(5)

text6.text = a(6)

text7.text = a(7)

text8.text = a(8)

text9.text = a(9)

text10.text = a(10)

next

end sub

你建10上文字框和一個命令框!將**輸入命令按鈕就可以了

2樓:歐聯科技

dim i as long

for i=1 to 10

print 2i + int((2i+2-2i)*rnd())next

int((2i+2-2i)*rnd()):意思是 隨機生成一個從1到2i+2-2i也就是2 之間的數,加上2i以後,就變成隨機生成一個從2i+1 到 2i+2 之間的隨機數。 總之設計思路就是這樣的,可以根據自己的要求稍加修改。

vb 隨機數問題 10

3樓:宇桐非吧外交

隨機出來的怎麼會?除非是你的隨機種子沒寫好~估計你的程式每次隨機出來的數字都是一樣的,比如第一次執行隨即數字:18 15 14 2 3 7 第二次還是

18 15 14 2 3 7

你試試這兩行語言

randomize

for u =1 to 100

a=int(rnd* 19)+ 1

next u

應該不會出現你說的問題了

4樓:匿名使用者

vb 隨機數頻率控制

'新增 command1

'0-59為小數, 60以上為大數

'i 是要執行幾次

'jj 是得到的隨機數

'kk 是控制每10個數則換行顯示

'minnum 是統計小數出現的次數

'getrnd 本次得到的隨機數是否有效

dim countrnd%, i%, jj%, kk%, minnum%, getrnd as boolean

private sub form_load()me.autoredraw = true

end sub

private sub command1_click()randomize

getrnd = false

countrnd = 0: kk = 0: minnum = 0me.cls

for i = 1 to 100

dojj = int(rnd * 100)if jj >= 60 then

me.forecolor = qbcolor(0)print jj;

kk = kk + 1

if kk mod 10 = 0 then printexit do

end if

if getrnd then

me.forecolor = qbcolor(12)print jj;

kk = kk + 1

minnum = minnum + 1

if kk mod 10 = 0 then printgetrnd = false

countrnd = 0

exit do

end if

loop

countrnd = countrnd + 1if countrnd > 6 then getrnd = true '使用6來控制出現小數的頻率,數字越大則出現頻率越少

next i

msgbox "小數出現 " & cstr(minnum) & " 次"

end sub

5樓:vi六

這個簡單,先設定一個機率範圍再拿隨機數進行比較,比如1的範圍就是1,2的範圍就是2到3,3的範圍就是4到6,隨機數的範圍是1到6然後就對生成的100隨機數進行判斷在哪個範圍內就輸出哪個,比隨機數是5就輸出3,就這樣3的數字最大範圍就最大幾得到隨機數在3的範圍的機率也最大,以次類推可以推到20為止,隨機數的範圍是1到20範圍的最大值!

vb隨機數問題

6樓:匿名使用者

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

7樓:匿名使用者

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隨機數的問題。

8樓:匿名使用者

我想你可能是沒有明白

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)

9樓:磊犇

沒太明白你的意思。

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

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隨機數問題

10樓:匿名使用者

private sub form_dblclick()dim s1 as integer, s2 as integer, s3 as integer, i as integer, irnd as integer

randomize

for i = 1 to 100

irnd = int(rnd * 90+10)print irnd

select case irnd

case 10 to 40

s1 = s1 + 1

case 40 to 70

s2 = s2 + 1

case 70 to 99

s3 = s3 + 1

end select

next

print "小於等於40的個數為:" & s1print "大於40小於等於70的個數為:" & s2print "大於70的個數為:" & s3end sub

經測試 ok!

11樓:匿名使用者

應該要吧中100個陣列寫到資料庫 在查詢出來

12樓:匿名使用者

dim s1 as integer, s2 as integer, s3 as integer, i as integer, irnd as integer

randomize

for i = 1 to 100

irnd = int(rnd * 90+10)if irnd <= 40 then

s1 = s1 + 1

elseif irnd > 40 and irnd <= 70 then

s2 = s2 + 1

else

s3 = s3 + 1

end if

next

msgbox "小於等於40的個數為:" & s1 & vbcrlf & "大於40小於等於70的個數為:" & s2 & vbcrlf & "大於70的個數為:" & s3

13樓:匿名使用者

option explicit

option base 1

dim arr(100) as singledim i as integer

private sub command1_click()for i = 1 to 100

arr(i) = rnd * 90+10

print arr(i),

if i mod 10 = 0 then printnext i

end sub

private sub command2_click()dim a, b, c as integerfor i = 1 to 100

if arr(i) <= 40 then

a = a + 1

elseif arr(i) > 40 and arr(i) <= 70 then

b = b + 1

else

c = c + 1

end if

next i

print "小於等於40:", a; "大於40小於等於70:", b; "大於70:", c

end sub

至於相對應的控制元件自己設定

如何使vb中rnd函式產生的隨機數是在

只能得到 0,1 上的隨機數,1取不到。即使如此,可以視作rnd 0,1 上的隨機數,因為x 1的概率無限接近0.rnd,visual basic中隨機函式。格式 rnd 數值表示式 功能 求 0,1 之間的一個隨機數。語法 rnd number 如果 number 的值是 randomize 生成...

c中關於隨機數rand和,C中關於隨機數rand和srand

先看看下面的一段關於rand 與srand 的講解 1.在標準的c庫中函式rand 可以生成0 rand max之間的一個隨機數回,其答中rand max 是stdlib.h 中定義的一個整數,它與系統有關。2.rand 函式沒有輸入引數,直接通過表示式rand 來引用 例如可以用下面的語句來列印兩...

c語言問題,請問如何才能產生隨機數

srand int value rand max 1 min min c語言怎樣產生一定範圍的隨機數?編譯環境為 vs2013 產生1到3的整型隨機數的 如下 include include include define max 3 這個函式的意義為 隨機生成最大的數為3 define min 1 ...