取1-16之间的随机整数,不能重复取!

解决方案 »

  1.   

    var
      Len: Integer;
      i, Index: Integer;
      a, b: array [1..20] of Integer;
    begin
      Len:=20
      for i:=1 to Len do
        a[i]:=i;
      Randomize;
      while Len>0 do 
      begin
        Index:=Random(Len)+1;
        b[20-Len+1]:=a[Index];//随机数
        a[Index]:=a[Len];
        Dec(Len)
      end  
    end;
      

  2.   

    var 
     i: integer;
    begin
      Randomize;
      i:=Random(16)+1;
    end;
      

  3.   

    kkgogo(kkgogo) 的思路不错,以往我都这么做的。