产生不重复随机数的简便算法
吉林燃料乙醇 秦玉庆
产生不重复随机数的算法能够解决诸如随机洗牌,抽彩等问题,在网上的一些算法自觉较繁,现给出简单的算法。以下源程序为1..36个数字,随机排列,产生不重复随机数。
var
aa : array[1..36] of string[2]; //aa数组为需要随机排列的数组,
{先把1..36按顺序给aa数组赋值}
procedure TForm1.FormCreate(Sender: TObject);
i:integer;
begin
for i:=1 to 36 do begin
aa[i]:=inttostr(i);
bb[i]:=inttostr(i);
end;
{随机进行排列}
procedure TForm1.Button1Click(Sender: TObject);
i,j:integer;
swapa:string[2];
randomize;
j:=1+random(36);
swapa:=aa[i];
aa[i]:=aa[j];
aa[j]:=swapa;
Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved. 闵涛 E_mail:admin@mintao.net(欢迎提供学习资源)
鄂公网安备 42011102001154号
站长:MinTao ICP备案号:鄂ICP备11006601号-18