我的另类想法:一个timer控件,对时间进行某种算法!
第一次来,不懂事,不要见怪!谢谢!

解决方案 »

  1.   

    不明白,直接这样不行吗?
    Int((9999- 1+ 1) * Rnd + 1)
      

  2.   

    dim Number as integer
    randomize timer
    number=(int(rnd * 9)+1)*1000
    number=number + int(rnd *10)*100
    number=number + int(rnd *10)*10
    number=number + int(rnd *10)
    msgbox number
      

  3.   

    产生四位随机数,再让它与yy-mm-dd hh:mm:ss 一起进行运算(如何运算自己决定),就可再得出四位数.
      

  4.   

    自己做呗,取数的过程是这样的:
    Rarray[i] = i(i = from 0 to 9)index = Random(Last);
    Rnd = Rarray[index];
    Swap(Rarray[index],Rarray[Last]);
    Last := Last-1;
      

  5.   

    其实符合要求的四位数我已经做出来了,只是如果产生的次数稍稍多一些,就会又出现重复的数字,比如说第一次产生1982,连续几次产生别的数字后,又产生了1982。我希望是这样,除非产生足够多的次数,否则不会有重复出现的数字。
    我想这是不是和RND的随机数序列有关?请赐教
      

  6.   

    rnd随机数发生器本来就存在很大问题!
      

  7.   

    兄弟刚写了一段代码,你试试:
    Private Sub Command1_Click() '查看效果
    For i = 0 To 9
    List1.AddItem rndnum(4)
    Next
    End SubFunction rndnum(ByVal n As Integer) As String '随机生成一个n位无重复数字(n<=9)
    If n < 2 Or n > 9 Then Exit Function
    Static x As New Collection, temp As Integer, i As Integer
    For i = 0 To 9
    x.Add i
    Next
    Randomize
    temp = 2 + Int(Rnd * 9)
    rndnum = x.Item(temp)
    x.Remove temp
    For i = 2 To n
    temp = 1 + Int(Rnd * (x.Count - 1))
    rndnum = rndnum & x.Item(temp)
    x.Remove temp
    Next
    Set x = Nothing
    End Function
      

  8.   

    使用randomize后,rnd产生的值本来就是由时间种子产生的,
    之所以数据不够随机,完全是由你的算法决定的。
    你可以算一下概率嘛,看看你那样的算法出现2个1982的概率有多大?