使用Random()之前使用Randomize和没有使用有什么不同?

解决方案 »

  1.   

    Randomize initializes the built-in random number generator with a random value (obtained from the system clock). The random number generator should be initialized by making a call to Randomize, or by assigning a value to RandSeed.Do not combine the call to Randomize in a loop with calls to the Random function. Typically, Randomize is called only once, before all calls to Random.
      

  2.   

    如果不用randomize(),random()每次产生的序列一样。
      

  3.   

    不用randomize则每次产生的随机数序列都一样。
      

  4.   

    楼上的copy的好快啊~~~,^_^
    ramdonize把当前系统时间放入随机数生成器来产生随机数,不同的时间产生的数不一样:)
      

  5.   

    Obtain from delphi help?Can U expatiate it in Chinese,Thanks!
      

  6.   

    写个小程序测试看看;
    procedure TForm1.Button1Click(Sender: TObject);
    var
      i:integer;
    begin
      listbox1.Clear ;
      for i:=1 to 10 do
      begin
        listbox1.Items.Add(inttostr(random(20)));
      end;
    end;
    关闭你的程序,然后重新运行;再点BOTTON1你就会发现和上次运行产生的随即数一样的;
      

  7.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      i:integer;
    begin
      randomize;//加上再看看??
      listbox1.Clear ;
      for i:=1 to 10 do
      begin
        listbox1.Items.Add(inttostr(random(20)));
      end;
    end;
      

  8.   

    Randomize用于设置随机种子RandSeed,也就是根据当前时间给RandSeed,不用的话RandSeed的值为0,导致每次产生的随机序列相同!看看VCL中,Randomize的汇编代码,看看是如何将当前时间转化为一个数的,最后MOV     RandSeed,EAX将寄存器EAX的值传给随机种子数RandSeed