4个数的范围是0到9

解决方案 »

  1.   

    Do     '随机产生数字
        a = Right(Time * Rnd, 1)
        b = Right(Time * Rnd, 1)
        c = Right(Time * Rnd, 1)
        d = Right(Time * Rnd, 1)
    Loop While a = b Or a = c Or a = d Or b = c Or b = d Or c = d以前我做猜数字时随机产生四个不同的数字用的给分吧
      

  2.   

    现在可以用这个初始化随机种子,以前我还不懂这个
    Do     '随机产生数字
        Randomize
        a = 9 * Rnd\1
        b = 9 * Rnd\1
        c = 9 * Rnd\1
        d = 9 * Rnd\1
    Loop While a = b Or a = c Or a = d Or b = c Or b = d Or c = d
      

  3.   

    Private Sub Command1_Click()
    Dim x(9) As Byte, i As Integer, j As Byte, result As String
    For i = 0 To 9
    x(i) = i
    Next
    For i = 1 To 4
    Randomize
    j = Int(Rnd * (10 - i))
    result = result & x(j)
    x(10 - i) = x(j)
    x(j) = 10 - i
    Next
    MsgBox result
    End Sub
      

  4.   

    lzw858(落伍者)兄的方法理论上有可能运行一年都出不了结果
      

  5.   

    Dim A(0 to 9) as byte ,I as long
    for i=0 to 9
        A(i)=i
    next
    for i=0 to 1000
        randomize timer
        swap A(int(rnd*10)),a(int(rnd*10))
    next********************private sub SWAP(A as byte,B as byte)    Dim T as byte
        t=a:a=b:b=tend sub*******************然后你按照顺序调用A(...)即可不过程序中用RANDOMIZE TIMER稍微有点达不到理想状态,应该把TIMER改为API函数GETTICKCOUNT更好。
      

  6.   

    虽然许多人不愿意使用,一般可以用集合处理此类问题:Sub xx()
    Dim x As New Collection, i As Integer, j As Byte, result As String
    result = ""
    For i = 0 To 9
    x.Add i
    Next
    For i = 1 To 4
    Randomize
    j = Int(Rnd * (x.Count)) + 1
    result = result & x(j)
    x.Remove j
    Next
    Debug.Print result
    End Sub
      

  7.   

    Private Sub Command1_Click()
      
      '必要参数
      Dim A() As Long   '数组
      Dim Aoc As Long   '输出数组{1 <= Aoc <= (Vlen+1)}
      Dim Vmax As Long  '数值绝对上界{ Vmax > Vmin }
      Dim Vmin As Long  '数值绝对下界{ Vmin < Vmax }
      
      '可导参数
      Dim Vlen As Long  '数值相对范围
      Dim I As Long     '索引
      Dim Iom As Long   '输出索引最大
      Dim Isw As Long   '交换指针
      Dim Vst As Long   '临时储值变量
      
      Vmin = 0: Vmax = 9: Aoc = 4
      
      Vlen = Vmax - Vmin
      Iom = Aoc - 1
      
      ReDim A(0 To Vlen)  '数组初始化
      For I = 0 To Vlen
        A(I) = I + Vmin
      Next  Randomize Timer  '数组乱序(这里是“跳蚤算法”的快速型变种算法)
      For I = 0 To Iom
        Isw = Int(Rnd * 10)
        Vst = A(Isw): A(Isw) = A(I): A(I) = Vst 'Swap A(Isw),A(I)
      Next
      
      ReDim Preserve A(0 To Iom)
      
      Text1.Text = ""
      
      For I = 0 To Iom
        Text1.Text = Text1.Text & " " & A(I)
      Next
    End Sub
      

  8.   

    dim str as string
    dim Result(3) as integer
    dim Pos as integer
    str="0123456789"
    for i=0 to 3
       randomize
       pos = Int(Rnd * (len(str)) + 1
       result(i)=mid(str,pos,1)
       str=replace(str,result(i),"")
    next
    注:只满足楼主要求