我在formload 加了 Randomize
然后做了个按扭 命令是text1.text=Int(Rnd * 6)
我的问题是产生的数是不是真正的随即数,有没有规律,产生的数是不是和各自的机器、时间或者程序执行的次数有关?

解决方案 »

  1.   

    Randomize 语句
          初始化随机数生成器。语法Randomize [number]可选的 number 参数是 Variant 或任何有效的数值表达式。说明Randomize 用 number 将 Rnd 函数的随机数生成器初始化,该随机数生成器给 number 一个新的种子值。如果省略 number,则用系统计时器返回的值作为新的种子值。如果没有使用 Randomize,则(无参数的)Rnd 函数使用第一次调用 Rnd 函数的种子值。注意 若想得到重复的随机数序列,在使用具有数值参数的 Randomize 之前直接调用具有负参数值的 Rnd。使用具有同样 number 值的 Randomize 是不会得到重复的随机数序列的。
      

  2.   

    如果不用Randomize ,出的数就是一定的
      

  3.   

    用randomize
    的话每次用都不一样,
    不用的话程序每次执行都是一样的。
      

  4.   

    大家说的都对,加入Randomize 即是随机数
      

  5.   

    to wzljzh(求知):
    最好用 Randomize Timer 。
    不会是有规律的。
      

  6.   

    Rnd()函数产生的随机数是根据上次生成的随机数产生的,称前一次的为种子。Randomize是用来初始化第一个种子的,不用的话,第一个种子就由VB自己给出,而且每次都一样的,至于规律是什么,我就不知道了,需要知道吗?
      

  7.   

    你做得是对的,既然是随机,任何时候运行的结果
    都可能不一样,跟机器等其它因素都是无关的你不确定可以用下列代码试一下:(加一个Timer控件)我要100分
                               Private Sub Form_Load()
                                Randomize
                               Timer1.Interval = 500
                               Timer1.Enabled = True
                               End Sub                           Private Sub Timer1_Timer()
                               Text1.Text = Int(Rnd * 6)
                                End Sub
      

  8.   

    我现在要的是出数的规律!!!!!!!!!!!!!
    谁能告诉我Int(Rnd * 6)
    出数的规律!!!!!!!!!!!!!!!!!!
      

  9.   

    Rnd是伪随机数
    用的是“线性同余发生器算法”
    4294967298次才会重复一趟
      

  10.   

    我觉得应该让Windows系统提供Rnd函数:由于线程切换的不确定性,这将是真正的随机数