生成多个随机数的问题(立即揭贴)

jacky125 2006-05-08 01:04:30
Int((1000 - 1 + 1) * Rnd + 1)
--------------------------------------
这个只能在(1-1000)中生成一个随机数,我想一次生成10个,代码应该怎么写????
...全文
185 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
vbman2003 2006-05-08
  • 打赏
  • 举报
回复
上面的代码在EXCEL中可以通过(我试过了),如果你有1000行,只要将q = Int(Rnd(1) * 29 + 1)改为q = Int(Rnd(1) * 999 + 1),这样就可以在1000行中任意选中10行了。不知道是不是你要的
vbman2003 2006-05-08
  • 打赏
  • 举报
回复
Excel中的?那么试试:
Sub SelectRow()

Dim n(1 To 1000), i, j, q
Dim sRow As String

Erase n
j = 0
Randomize Timer
While j < 10
q = Int(Rnd(1) * 29 + 1)
If n(q) = 0 Then
sRow = sRow & "," & q & ":" & q
n(q) = 1
j = j + 1
End If
Wend
sRow = Mid(sRow, 2)
'Debug.Print sRow
Range(sRow).Select

End Sub
ZOU_SEAFARER 2006-05-08
  • 打赏
  • 举报
回复
dim m(1 to 10) as double
for i = 1 to 10
m(i)=Int((1000 - 1 + 1) * Rnd + 1)
next

jacky125 2006-05-08
  • 打赏
  • 举报
回复
我想得到这10个随机数,并付值给m1,m2,m3.....
代码应该怎么写呢???
jacky125 2006-05-08
  • 打赏
  • 举报
回复
vbman2003(家人)
-------------------------------------------------
Print q 出错,提示"方法无效"
jacky125 2006-05-08
  • 打赏
  • 举报
回复
我的vb程序是写在Excel的宏中的,功能就是随机的选出10行选中(Rows().Select)
怎样才能同时选中10行呢????
vbman2003 2006-05-08
  • 打赏
  • 举报
回复
如果要求产生的10个随机数字是不重复的,有许多种算法。论坛有许多讨论。比如 跳蚤算法、利用集合,字符串比较等等。下面这个是用数组实现的方法:
Dim n(1 To 1000), i, j, q

Erase n
j = 0
Randomize Timer
While j < 10
q = Int(Rnd(1) * 999 + 1)
If n(q) = 0 Then
Print q
n(q) = 1
j = j + 1
End If
Wend
脆皮大雪糕 2006-05-08
  • 打赏
  • 举报
回复
for i = 1 to 10
debug.print Int((1000 - 1 + 1) * Rnd + 1)
next

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧