Visual Basic 语言参考 Rnd 函数请参见
数学摘要 | Randomize 语句
返回一个 Single 类型的随机数。Rnd[(number)]
参数
number
可选。一个 Single 值或任何有效的 Single 表达式。
返回值
如果 number 为 Rnd 生成
小于零 每次都相同的数字,并将 number 用作种子。
大于零 序列中的下一个随机数。
等于零 最近生成的数字。
未提供 序列中的下一个随机数。 备注
Rnd 函数返回小于 1 但大于或等于 0 的值。number 的值决定了 Rnd 生成随机数的方式:由于每一次后续调用 Rnd 函数都用序列中前一个生成的数作为下一个数的种子,因此对于任何给定的初始种子都会生成相同的数字序列。在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器,该生成器具有一个基于系统计时器的种子。若要生成某给定范围内的随机整数,可使用此公式:Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
这里,upperbound 是此范围的上限,而 lowerbound 是范围的下限。注意 若要重复随机数序列,请在使用带数值参数的 Randomize 之前先调用带负参数的 Rnd。使用带有相同 number 值的 Randomize 不会重复前一序列。
示例
本例使用 Rnd 函数生成一个 1 到 6 之间的随机整数值。Dim MyValue As Integer
MyValue = CInt(Int((6 * Rnd()) + 1)) ' Generate random value between 1 and 6.
数学摘要 | Randomize 语句
返回一个 Single 类型的随机数。Rnd[(number)]
参数
number
可选。一个 Single 值或任何有效的 Single 表达式。
返回值
如果 number 为 Rnd 生成
小于零 每次都相同的数字,并将 number 用作种子。
大于零 序列中的下一个随机数。
等于零 最近生成的数字。
未提供 序列中的下一个随机数。 备注
Rnd 函数返回小于 1 但大于或等于 0 的值。number 的值决定了 Rnd 生成随机数的方式:由于每一次后续调用 Rnd 函数都用序列中前一个生成的数作为下一个数的种子,因此对于任何给定的初始种子都会生成相同的数字序列。在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器,该生成器具有一个基于系统计时器的种子。若要生成某给定范围内的随机整数,可使用此公式:Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
这里,upperbound 是此范围的上限,而 lowerbound 是范围的下限。注意 若要重复随机数序列,请在使用带数值参数的 Randomize 之前先调用带负参数的 Rnd。使用带有相同 number 值的 Randomize 不会重复前一序列。
示例
本例使用 Rnd 函数生成一个 1 到 6 之间的随机整数值。Dim MyValue As Integer
MyValue = CInt(Int((6 * Rnd()) + 1)) ' Generate random value between 1 and 6.
解决方案 »
- 有哪位用ie7或ie7内核浏览器的朋友帮忙试试。
- 客房管理需具备的资料?
- 我调用excel.application时,程序总是报外部调用错误,是什么原因呀?
- ADO连接时的用户名和密码该怎样输入
- 想做一个查询QQ在线的软件
- 使用vb的Winsock控件能实现内网与公网通信吗?请高手们指点迷津
- 各位大哥救救我!如何用VB捆绑EXE文件?
- 心中的理想是当VB程序员.可是刚把一本基础教程看完又不知道该学什么样的书了,我该怎么办帮帮我吧!感激不尽...
- 请教!好像database对象只支持256个字节以内的SQL语句,有时查询条件比较复杂,该怎么办?
- 急急急!!!一个关于设置command对象数据源的问题!帮帮我!
- 为什么类型不匹配??
- Terminate事件只有点击右上角的叉才出现吗?没有其他情况吗?
Rnd 函数
初始化随机数生成器。Randomize [ number ]
各部分说明
number
可选。一个 Object 或任何有效的数值表达式。
备注
Randomize 用 number 将 Rnd 函数的随机数生成器初始化,并给它一个新的种子值。如果省略 number,则用系统计时器返回的值作为新的种子值。如果没有使用 Randomize,则(无参数的)Rnd 函数使用第一次调用 Rnd 函数的同一数字作为种子,并从此使用上一次生成的数字作为种子值。注意 若要重复随机数序列,请在使用带数值参数的 Randomize 之前先调用带负参数的 Rnd。使用带有相同 number 值的 Randomize 不会重复前一序列。
示例
本例使用 Randomize 语句将随机数生成器初始化。由于省略了数字参数,Randomize 使用来自 Timer 函数的返回值作为新种子值。Dim MyValue As Integer
Randomize ' Initialize random-number generator.
MyValue = CInt(Int((6 * Rnd()) + 1)) ' Generate random value between 1 and 6.
For i = 0 To 4
Label1(i) = Int((10 * Rnd) + 1)
For j = 0 To i - 1
Do Until Label1(i) <> Label1(j)
Label1(i) = Int((10 * Rnd) + 1)
Loop
Next
Next
先 5个label1定义成数组
自己错的自己改:
Randomize
For i = 0 To 4
Label1(i) = Int(10 * Rnd)
For j = 0 To i - 1
'检查重复 并重新生成随机数
If Label1(i) = Label1(j) Then
Label1(i) = Int(10 * Rnd)
j=-1'从第一个数 重新检查
end if
Next
Next
Dim B(10) As Boolean
Dim k As Long
Dim i As Long
For i = 0 To 10
B(i) = False
Next i
Randomize
For i = 0 To 4
Do
k = (Rnd * 11000) Mod 11
DoEvents
Loop Until B(k) = False
B(k) = True
List1.AddItem Str(k)
Next i
End Sub