一个比较基础的问题。
考试系统中的一个模块,模块的功能是每收到一个请求就产生20个随机数,然后从题库中抽取相应题号的题目。用for语句+random函数产生随机数,如果第一次产生的随机数顺序是“4,7,11,5......”,那么以后每次产生的随机数顺序也是“4,7,11,5......”!
原先用vb时除了有rnd()函数外还有一个randomize(好像是这么拼写的),了解伪随机数生成方法的人知道这个randomize就是重置那个基本的算子,我刚用delphi,不知道delphi中同vb中功能对应的关键字,请各位赐教!如果做过考试系统也请多多指教!
谢谢

解决方案 »

  1.   

    Delphi也一样的,Randomize;var
       I: Integer;
     begin
       Randomize;
       for I := 1 to 50 do begin
         { Write to window at random locations }
         Canvas.TextOut(Random(Width), Random(Height), 'Boo!');
       end;
     end;
      

  2.   

    Randomize 你只要是随几数就可能每次的都不同。
      

  3.   

    Randomize要放到循环外执行一次就行了。
    random要放到循环中产生不同的随机数。
      

  4.   

    ramdonize不能用在循环内,ramdonize把当前时间作为随即种子产生随机数序列
      

  5.   

    Randomize 与Random应配套使用,