现在有7个数,随机出现(一共要100个,排成一列)
111.  20.  77.  50 。100。5。0
其中111出现2次,100出现3次,50随机出现4次,77出现3次,20随机出现5次,5出现10次,其他都是0

解决方案 »

  1.   

    一个简单的办法Private Sub Command1_Click()
    Dim A(99) As Long
    Dim i As Long
    Dim temp As Long
    Dim R As Long
    '初始化赋值
    For i = 1 To 3
    A(i) = 100
    A(i + 3) = 77
    Next
    For i = 7 To 8
    A(i) = 111
    Next
    For i = 9 To 12
    A(i) = 50
    Next
    For i = 13 To 17
    A(i) = 20
    Next
    For i = 17 To 26
    A(i) = 5
    Next
    '随机化
    Randomize
    For i = 0 To UBound(A) * 20
    R = Fix(Rnd() * 100)
    temp = A(i Mod 20)
    A(i Mod 20) = A(R)
    A(R) = temp
    Next
    '输出
    Cls
    For i = 0 To UBound(A)
    If Fix(i Mod 10) = 0 Then Print
    Print Tab(5 * (i Mod 10)); A(i);
    Next
    End Sub
      

  2.   

    随机化下面的的意思:
    Randomize
    For i = 0 To UBound(A) * 20 '交换次数为元素个数的20倍
    R = Fix(Rnd() * 100)  ’取100内的随机数
    temp = A(i Mod 20)   ‘把数组前20个数中的某个数的值 赋给变量temp
    A(i Mod 20) = A(R)  '把随机元素的值赋给 20以前那个元素A(R) = temp  ’把temp 的值(其实等于20以前的那个元素的原来的值)给随机元素,达到交换的目的
    Next
      

  3.   

    我没写全,SORRY
    1随机化下面的,包括输出的语句也看不懂
    2还有要是我要输出的不是100个,而是随我规定输出的个数,怎么解??
      

  4.   


    1,输入语句只是测试用,看不懂不要紧。2,把Dim A(99) As Long改成Dim A(你要的个数) as long
      
      

  5.   

    代码我测试过了
    1不过我想的是在窗口上写出要规定输出的个数?(不在代码中写)
    好象要改Dim A(99) As Long
    R = Fix(Rnd() * 100)
    不太会改!