Random是个随机函数,我用它产生数百个数据,当然,每次运行的时候每个数据都是不一样的,但当我关闭程序后再打开,奇怪的是,
程序第一次运行产生的随机数组和上次程序第一次产生的随机数组完全相同,程序第二次运行产生的随机数组又和上次程序第二次产生的随机数组完全相同.也就是每次程序启动后产生随机数组总是完全一样的.Random采用的到底是什么机理?怎样才能产生真正的随机数?

解决方案 »

  1.   

    运行一次Randomize就可以产生不同数据了。
    不过仍然不是真正的随机数
      

  2.   

    在程序开始的时候先执行一句。 
    Randomize;
      

  3.   

    randomize 随机数复位 
    random    随机数
    不复位的话,产生的数是一样的
      

  4.   

    看帮助
    The random number generator should be initialized by making a call to Randomize, or by assigning a value to RandSeed.
      

  5.   

    来晚了。补充几句。randomize可以生成随即数种子。有了这个种子之后,再使用random每次生成的随机数才是不相同的。具体用法如下:
    //生成种子
    randomize;
    ......//取随机数
    ran:=random(5); //这句话就是生成0--4中的一个随机数
    //如果你想要1--5中的随机数,可以写成:
    ran:=random(5)+1;
      

  6.   

    初始化randomize
    Delphi的随机数是伪随机数来的:)http://lysoft.7u7.net
      

  7.   

    一般对随机数要求较高的话,就要利用Random做种子自己写了!
      

  8.   

    计算机中所谓的随机数严格说都是伪随机数,delphi编译器使用的算法是这样的。
    Xn+1 = (aXn + b) mod c
    a、b 和 c 都是质数,上一个随机数决定了下一个。
    随机数的种子是根据系统时钟算出的。
    Randomize  //产生种子,这个种子不可见
     s:=Random;//第一个
     s:=Random;//第二个
    ...
    每次调用Random得到的值是不同的
    因为上一个决定下一个,实际上不是完全随机的,只是不可预测。要做到完全随机,在每次调用Random之前都调用Randomize  。