Dim a As Integer = CInt(Int((9999 - 1000 + 1) * Rnd() + 1000))
创新互联建站是专业的宁晋网站建设公司,宁晋接单;提供成都网站建设、网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行宁晋网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
注:randomvalue = CInt(Int((upperbound - lowerbound + 1) * Rnd() + lowerbound))
这里,upperbound 是此范围内最大的数,lowerbound 是此范围内最小的数。
Private Sub Command1_Click()
Dim num(6) As Integer
Dim i As Integer, j As Integer
Dim tmp As Integer
Randomize '防止每次生出随机数一样
For i = 0 To 5
num(i) = Int(Rnd * 53) + 1
Next
PrintNum "新生成的6个随机数为:", 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个随机数为:", num()
End Sub
方法名称:next();功能描述:返回一个0~2147483647之间的整数
方法名称:next(i);功能描述:返回一个0~i之间的整数
方法名称:next(i,j);功能描述:返回一个i~j之间的整数
方法名称:Nextdouble();功能描述:返回一个0~1之间的随机小数
================
使用方法:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim rand = New System.Random()
MsgBox(rand.next().ToString())
End Sub
==========================
产生N个不同数的话,我给你个我写的VB的代码,你稍微改下:
产生0-10的数:
Private Sub Command1_Click()
Randomize
Dim a(10) As Long
n = 10
For i = 0 To n
a(i) = Int(Rnd() * (n + 1))
For j = 0 To i - 1
If a(i) = a(j) Then
i = i - 1
Exit For
End If
Next
Next
For i = 0 To n
Print a(i)
Next
End Sub
Rnd[(number)]
number
的值决定了
Rnd
生成随机数的方式
如果
number
的值
Rnd
生成
小于
每次都使用
number
作为随机数种子得到的相同结果。
大于
序列中的下一个随机数。
等于
最近生成的数。
省略
序列中的下一个随机数。
====================
先讨论没有加randomize时
X小于0
如
rnd(-1)
以-1为种的随机数永远相同
X大于0
如
rnd(1)
系统会先生成随机数列表
有N个随机数
你每执行一次rnd(1)就获取列表中下一个随机数
比如有这么个列表
程序开始时
得到0.7055475
执行第二次rnd(1)得到0.533424
第三次0.5795186
你关闭程序重新打开
第一次得到还是0.7055475
.7055475
.533424
.5795186
.2895625
.301948
而你说的X0
X0没差别
是错的
Rnd(1)
Debug.Print
Rnd(-2)
和
Debug.Print
Rnd(-2)
Rnd(1)
结果是不一样的
X等于0
最近生成的数
一般为科学型数值
这个值也是不变的
rnd(x)
省略x不写
就和X0
效果一样
=========================
Randomize
用
number
将
Rnd
函数的随机数生成器初始化,该随机数生成器给
number
一个新的种子值。如果省略
number,则用系统计时器返回的值作为新的种子值。
如果没有使用
Randomize,则(无参数的)Rnd
函数使用第一次调用
Rnd
函数的种子值。
注意
若想得到重复的随机数序列,在使用具有数值参数的
Randomize
之前直接调用具有负参数值的
Rnd。使用具有同样
number
值的
Randomize
是不会得到重复的随机数序列的。
一般在使用rnd获取随机数
都是
randomize
int(rnd*(上限-下限+1)+下限)
这2个函数的X都是省略不写
'项目:VB中产生在一定正整数范围内的不重复的随机数'作者:qq15495835Private Sub Command1_Click() Max = 100 '随机数上限值 Min = 1 '随机数下限值 Amount = 10 '产生号码数量(数量值应小于随机数上限值-随机数下限值)否则会产生死循环 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'请采纳参考!谢谢!