很惭愧,再请教一个关于随机数的问题!

yaozheng 2003-09-24 11:13:50
比方我有两组1到10的数字,就是一共有20个数字,每个数字有2个,现在要把这20个数随机打乱存在一个数组里,请问应该怎么写?谢谢!
...全文
114 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuyi1982 2003-09-24
  • 打赏
  • 举报
回复
Dim a(10) As Integer
Dim b(10) As Integer
Dim c(20) As Integer

For i = 1 To 10
a(i) = i
Next
For i = 1 To 10
b(i) = i + 20
Next
/////////a(i),b(i)随意赋值

For i = 1 To 10
c(i) = a(i)
Next
For i = 11 To 20
c(i) = b(i - 10)
Next
////////全部赋给c(i)

For i = 1 To 50
Randomize
temp1 = Int(Rnd() * 20) + 1
temp2 = temp1
Do While temp2 = temp1
temp2 = Int(Rnd() * 20) + 1
Loop
temp = c(temp1)
c(temp1) = c(temp2)
c(temp2) = temp
Next
///////交换50遍

c(i)就是你想要的数组
yaozheng 2003-09-24
  • 打赏
  • 举报
回复
已解决了,谢谢楼上朋友的提示。
northwolves 2003-09-24
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
MsgBox random
End Sub



Function random() As String
Dim temp As New Collection
Dim a(1 To 20) As String
Dim i As Integer, num As Integer
For i = 1 To 10
temp.Add i
temp.Add i
Next
Randomize
For i = 1 To 20
num = Int(Rnd * temp.Count + 1)
a(i) = temp(num)
temp.Remove num
Next
random = Join(a(), ",")
End Function
yaozheng 2003-09-24
  • 打赏
  • 举报
回复
有相关代码参考一下吗?我就是随机数写不来,感觉没掌握要领。
liuyi1982 2003-09-24
  • 打赏
  • 举报
回复
可以把20个数都放入你要存放的那个数组
然后产生二个20以内的不一样的随机数
互换在那个数组中相应位置的数

重复多次,应该就可以了吧

7,762

社区成员

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

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