如何将某一数组的值随机赋给另一数组?

homebysea 2004-02-03 02:40:28
比如一数组a(50),如何将这50个元素的值赋给b(50),

要求是:1.随机赋值
2.数组a里的元素不能重复赋值给数组b。

可能说得比较罗嗦,意思大家应该都明白,希望各位给出代码,谢谢。
...全文
153 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kmzs 2004-02-03
  • 打赏
  • 举报
回复
可行
cxyOOOO 2004-02-03
  • 打赏
  • 举报
回复
//For i = 0 To 50
// Randomize Timer
// k = CLng(Rnd() * 50) + 0

粗粗的看了一下, Randomize Timer只需一次调用
northwolves 2004-02-03
  • 打赏
  • 举报
回复
写一个函数:
Private Sub Command1_Click()
Dim x(1 To 50) As String, i As Long
For i = 1 To 50
x(i) = i * i
Next
Dim y
y = copyarray(x)
MsgBox Join(y, ",")
End Sub

Function copyarray(ByRef a() As String)
Dim b() As String
Dim i As Long, temp As New Collection, tempnum As Long
For i = LBound(a) To UBound(a)
temp.Add i
Next
Randomize
ReDim b(LBound(a) To UBound(a))
For i = LBound(a) To UBound(a)
tempnum = Int(temp.Count * Rnd + 1)
b(i) = a(temp(tempnum))
temp.Remove tempnum
Next
copyarray = b
Erase b
End Function
rainstormmaster 2004-02-03
  • 打赏
  • 举报
回复
顺便说一下:
vb中数组的下标是从0开始的(默认)
rainstormmaster 2004-02-03
  • 打赏
  • 举报
回复
'一个按钮,两个listbox(用于显示数组的元素)
'要加入对Microsoft Scripting Runtime的引用
Option Explicit
Dim a() As Long
Dim b() As Long

Private Sub Command1_Click()
List2.Clear
Dim dic As New Dictionary
Dim i As Long
Dim k As Long
ReDim b(50)
For i = 0 To 50
Randomize Timer
k = CLng(Rnd() * 50) + 0
Do While dic.Exists(k) = True
Randomize Timer
k = CLng(Rnd() * 50) + 0
Loop
dic.Add k, k + 1
b(i) = a(k)
List2.AddItem CStr(b(i))
Next
Set dic = Nothing
End Sub

Private Sub Form_Load()
'初始化数组a
ReDim a(50)
Dim i As Long
For i = 0 To 50
a(i) = 2 * i + 1
List1.AddItem CStr(a(i))
Next
End Sub
homebysea 2004-02-03
  • 打赏
  • 举报
回复
自己写了一个,不知道对不对
N是数组下标,同上面的50

Dim j as Integer,k as Integer,Numsel as Integer
For k = 1 To N
Randomize Timer
NumSel = Int(Rnd() * (N + 2 - k))
b(k) = a(NumSel)
If NumSel = 1 Then
For j = 1 To N - k
a(j) = a(j + 1)
Next
ElseIf NumSel > 1 And NumSel <> N + 1 - k Then
For j = NumSel To N - k
a(j) = a(j + 1)
Next
End If
Next

7,759

社区成员

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

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