见过一个C语言的
改成VB是这样:Private Const MULTIPLIER=&H15A4E35
Private Const INCREMENT=1
Private Seed as longpublic function rand()as integer
    seed=MULTIPLIER*Seed+INCREMENT
    rand=(seed\&H10000)And &H7FFF
end sub

解决方案 »

  1.   

    那改成这样Private Const MULTIPLIER=&H15A4E35
    Private Const INCREMENT=1
    Private Seed as longpublic function rand()as integer
        seed=(1#*MULTIPLIER*Seed+INCREMENT)And &H7FFFFFFF
        rand=(seed\&H10000)And &H7FFF
    end sub
      

  2.   

    Private Const MULTIPLIER=&H15A4E35
    Private Const INCREMENT=1
    Private Seed as longpublic function rand()as integer
        seed=(1#*MULTIPLIER*Seed+INCREMENT)And &H7FFFFFFF
        rand=(seed\&H10000)And &H7FFF
    end sub
      

  3.   

    一个比较笨的方法,但很可行用多媒体计时器APIPublic Declare Function timeGetTime Lib "winmm.dll" Alias "timeGetTime" () As Long这表示一个从WINDOWS启动以来的毫秒数,那么利用这个毫秒数产生随机数
    ,全部代码如下:
    Private Declare Function timeGetTime Lib "winmm.dll" () As LongFunction myRnd(n As Integer) As Integer
        myRnd = timeGetTime Mod n
    End Function调用是就可用aaa=myRnd(n)产生0到n-1随机整数