随机产生不重复数字

http://www.cnblogs.com/28088191/archive/2008/12/25/1362519.html

下面是一个在14个数据产生10个不重复的随机数

-----------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
var   a:array[1..14]of   integer;//14个数
          b:array[1..10]of   integer;//结果
          c:array[1..14]of     boolean;//标志,默认false
          i,temp:integer;
  begin
          for   i:=1   to   14   DO
            begin
              a[i]:=i;
              c[i]:=false;
            end;
          for   i:=1   to   10   do
              begin
                  temp:=Random(14)+1;
                  while   c[temp]=true   do
                      begin
                          temp:=Random(14)+1;
                      end;
                  b[i]:=a[temp];
                  c[temp]:=true;
              end;
          ListBox1.Clear;
          for   i:=1   to   10   do
          ListBox1.Items.Add(IntToStr(b[i]));

  end;

procedure TForm1.Button1Click(Sender: TObject);
var rarr:array[1..14]of integer;//结果
farr:array[1..14]of boolean;//标志,默认false
i,k:integer;
begin
for k:=1 to 14 DO
begin
farr[k]:=false;
end;
for k:=1 to 14 do
begin
i:=Random(14)+1;
while farr[i]=true do
begin
i:=Random(14)+1;
end;
rarr[k]:=i;
farr[i]:=true;
end;
ListBox1.Clear;

for i:=1 to 14 do
ListBox1.Items.Add(IntToStr(rarr[i]));
end;

原文地址:https://www.cnblogs.com/sunsoft/p/1989408.html