本文整理自网络,侵删。
delphi产生不重复随机数的算法能够解决诸如随机洗牌,抽彩等问题,在网上的一些算法自觉较繁,现给出简单的算法。以下源程序为1..36个数字,随机排列,产生不重复随机数。
var
aa : array[1..36] of string[2]; //aa数组为需要随机排列的数组,
{先把1..36按顺序给aa数组赋值}
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
for i:=1 to 36 do begin
aa[i]:=inttostr(i);
bb[i]:=inttostr(i);
end;
end;
{随机进行排列}
procedure TForm1.Button1Click(Sender: TObject);
var
i,j:integer;
swapa:string[2];
begin
randomize;
for i:=1 to 36 do begin
j:=1+random(36);
swapa:=aa[i];
aa[i]:=aa[j];
aa[j]:=swapa;
end; //由此得到不重复的随机排列数字
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/oury/archive/2005/04/18/351992.aspx
相关阅读 >>
Delphi 双击listbox1内容,数据插入到memo1/synedit1鼠标指定位置
更多相关阅读请进入《Delphi》频道 >>