打印本文 打印本文 关闭窗口 关闭窗口
产生不重复随机数的简便算法
作者:武汉SEO闵涛  文章来源:敏韬网  点击数926  更新时间:2009/4/23 18:35:36  文章录入:mintao  责任编辑:mintao

产生不重复随机数的简便算法

     吉林燃料乙醇 秦玉庆

产生不重复随机数的算法能够解决诸如随机洗牌,抽彩等问题,在网上的一些算法自觉较繁,现给出简单的算法。以下源程序为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;  //由此得到不重复的随机排列数字

打印本文 打印本文 关闭窗口 关闭窗口