Private Sub Command1_Click()
成都創(chuàng)新互聯(lián)專注于和縣企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),成都商城網(wǎng)站開發(fā)。和縣網(wǎng)站建設(shè)公司,為和縣等地區(qū)提供建站服務(wù)。全流程按需求定制開發(fā),專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
Dim a(1 To 100) As Integer
Dim i As Integer, j As Integer, k As Integer
For i = 1 To 100 '給數(shù)組a一百個元素賦值,并換每行十個數(shù)字輸出來窗體上
a(i) = Int(Rnd * 101)
k = k + 1
Print Tab((k - 1) * 5); a(i);
If k = 10 Then k = 0: Print
Next i
For i = 100 To 2 Step -1 '用冒泡排序法對數(shù)組進(jìn)行排序
For j = 1 To i - 1
If a(j) a(j + 1) Then
t = a(j): a(j) = a(j + 1): a(j + 1) = t
End If
Next j
Next i
For i = 1 To 100 '輸出排好序的數(shù)組
k = k + 1
Print Tab((k - 1) * 5); a(i);
If k = 10 Then k = 0: Print
Next i
End Sub
Rnd[(number)]
number
的值決定了
Rnd
生成隨機數(shù)的方式
如果
number
的值
Rnd
生成
小于
每次都使用
number
作為隨機數(shù)種子得到的相同結(jié)果。
大于
序列中的下一個隨機數(shù)。
等于
最近生成的數(shù)。
省略
序列中的下一個隨機數(shù)。
====================
先討論沒有加randomize時
X小于0
如
rnd(-1)
以-1為種的隨機數(shù)永遠(yuǎn)相同
X大于0
如
rnd(1)
系統(tǒng)會先生成隨機數(shù)列表
有N個隨機數(shù)
你每執(zhí)行一次rnd(1)就獲取列表中下一個隨機數(shù)
比如有這么個列表
程序開始時
得到0.7055475
執(zhí)行第二次rnd(1)得到0.533424
第三次0.5795186
你關(guān)閉程序重新打開
第一次得到還是0.7055475
.7055475
.533424
.5795186
.2895625
.301948
而你說的X0
X0沒差別
是錯的
Rnd(1)
Debug.Print
Rnd(-2)
和
Debug.Print
Rnd(-2)
Rnd(1)
結(jié)果是不一樣的
X等于0
最近生成的數(shù)
一般為科學(xué)型數(shù)值
這個值也是不變的
rnd(x)
省略x不寫
就和X0
效果一樣
=========================
Randomize
用
number
將
Rnd
函數(shù)的隨機數(shù)生成器初始化,該隨機數(shù)生成器給
number
一個新的種子值。如果省略
number,則用系統(tǒng)計時器返回的值作為新的種子值。
如果沒有使用
Randomize,則(無參數(shù)的)Rnd
函數(shù)使用第一次調(diào)用
Rnd
函數(shù)的種子值。
注意
若想得到重復(fù)的隨機數(shù)序列,在使用具有數(shù)值參數(shù)的
Randomize
之前直接調(diào)用具有負(fù)參數(shù)值的
Rnd。使用具有同樣
number
值的
Randomize
是不會得到重復(fù)的隨機數(shù)序列的。
一般在使用rnd獲取隨機數(shù)
都是
randomize
int(rnd*(上限-下限+1)+下限)
這2個函數(shù)的X都是省略不寫
'項目:VB中產(chǎn)生在一定正整數(shù)范圍內(nèi)的不重復(fù)的隨機數(shù)'作者:qq15495835Private Sub Command1_Click() Max = 100 '隨機數(shù)上限值 Min = 1 '隨機數(shù)下限值 Amount = 10 '產(chǎn)生號碼數(shù)量(數(shù)量值應(yīng)小于隨機數(shù)上限值-隨機數(shù)下限值)否則會產(chǎn)生死循環(huán) ReDim a(Amount) Randomize For i = 0 To Amount a(i) = Int((Max - Min + 1) * Rnd + Min) For j = 0 To i If i j And a(i) = a(j) Then i = i - 1 Next Next Text1 = Join(a, vbCrLf)End Sub'請采納參考!謝謝!
想要生成多少個都行。
Randomize()隨機打亂
dim?a1?as?integer=cint(rnd()*32))+1
dim?a2?as?integer=cint(rnd()*32))+1
dim?a3?as?integer=cint(rnd()*32))+1
dim?a4?as?integer=cint(rnd()*32))+1
dim?a5?as?integer=cint(rnd()*32))+1
Private Sub Command1_Click()
Dim num(6) As Integer
Dim i As Integer, j As Integer
Dim tmp As Integer
Randomize '防止每次生出隨機數(shù)一樣
For i = 0 To 5
num(i) = Int(Rnd * 53) + 1
Next
PrintNum "新生成的6個隨機數(shù)為:", num()
For i = 0 To 5
For j = 0 To 5
If num(j) num(j + 1) Then
tmp = num(j)
num(j) = num(j + 1)
num(j + 1) = tmp
End If
Next
Next
PrintNum "排序后的6個隨機數(shù)為:", num()
End Sub