delphi产生不重复随机数的算法  
官方Delphi 学习QQ群: 682628230(三千人)\n
频道

delphi产生不重复随机数的算法


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
推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.044214963912964 seconds