我要设计一个随机抽取数字的软件,要每次都抽不一样的数字...
如果单用random这个函数不用几次就会有相同的数字出现...
请问我要怎么写代码可以防止相同的数字出现呢?我用的是Delphi7软件

解决方案 »

  1.   

    把随机数放到list里面,每次检查一下
      

  2.   


    var
      list:TStringList;
      i,j:Integer;
    begin
      list := TStringList.Create;
      for j := 0 to 100 do
      begin
        Randomize;
        i := Random(100);
        if list.IndexOf(IntToStr(i)) = -1 then
          list.Add(IntToStr(i));
      end;
      ShowMessage(list.Text);
      list.Free;
    end;
      

  3.   

    1.在工程的Application.Run;上加这句:
      Randomize;//校验码随机数种子
    2.比哪说要生成4位数每次都不同就:
      CheckNumber := 1000 + Random(8999);
      

  4.   

    要先生成随机种子
    Randomize
    然后再
    Random(1000)
      

  5.   

    Randomize
    先初始化随机数 再random
    但是也可能不久就会有重复的
    你可以用一个stringlist保存已经用过的随机数
    然后每生成一个新随机数先判断stringlist中是否存在
    再确定是否重新生成即可
      

  6.   


    防止相同的数字出现,其实不是真随机了,而是发牌:
    把待发的牌先全部放到一个list,再打乱
    然后顺序取,就行了