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

上传人:hs****ma 文档编号:457143160 上传时间:2022-12-19 格式:DOCX 页数:5 大小:9.03KB
返回 下载 相关 举报
Delphi产生不重复随机数的简便算法_第1页
第1页 / 共5页
Delphi产生不重复随机数的简便算法_第2页
第2页 / 共5页
Delphi产生不重复随机数的简便算法_第3页
第3页 / 共5页
Delphi产生不重复随机数的简便算法_第4页
第4页 / 共5页
Delphi产生不重复随机数的简便算法_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《Delphi产生不重复随机数的简便算法》由会员分享,可在线阅读,更多相关《Delphi产生不重复随机数的简便算法(5页珍藏版)》请在金锄头文库上搜索。

1、Delphi产生不重复随机数的简便算法岸虽然有点晚,还是贴上自己的一个想法,供大家参考交流!基本思路是:先初始化一个要选择随机数范围加1的数组,其中a0保存可用的随机数的个数,然后在a0 范围内随机选取一个数,并把这个数与数字后面的数向交换,并将a0减1,直到最后全部取完,数组保存 的是所取随机数顺序的倒序.定义常量和变量constNUM_COUNT = 20;vara: array0.NUM_COUNT of Integer;初始化vari: Integer;begina0:= NUM_COUNT;for i:=1 to NUM_COUNT doai := i;end;得到不重复随机数,全部

2、取完返回-1function GetRandom: Integer;varres, tmp: Integer;beginif a0= 0 thenbeginResult := -1;Exit;end;Randomize;tmp := Random(a0)+1;Result := atmp;atmp := aa0;aa0:=Result;a0:= a0-1;end;测试 procedure TForm1.Button1Click(Sender: TObject);varRan: Integer;beginRan := GetRandom;if Ran -1 thenMemo1.Lines.Add

3、(IntToStr(Ran)elseMemo1.Lines.Add(随机数已经全部取完!); end;附完整的源代码:unit Unitl;interface usesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;constNUM_COUNT =20;typeTForm1 = class(TForm)Button1: TButton;Memo1: TMemo;procedure FormCreate(Sender: TObject);procedure Bu

4、tton1Click(Sender: TObject);private( Private declarations public( Public declarations end;varForm1: TForm1;implementation($R *.dfmvara: array0.NUM_COUNT of Integer;procedure TForm1.FormCreate(Sender: TObject);vari:Integer;begina0:= NUM_COUNT;for i:=1 to NUM_COUNT doai := i;end;function GetRandom: In

5、teger;varres, tmp: Integer;beginif a0=0 thenbeginResult :=-1;Exit;end;Randomize;tmp :=Random(a0)+1;Result:=atmp;atmp:=aa0;aa0:= Result;a0:=a0-1;end;procedure TForm1.Button1Click(Sender: TObject);varRan:Integer;beginRan := GetRandom;if Ran -1 thenMemo1.Lines.Add(IntToStr(Ran)elseMemo1.Lines.Add(随机数已经全部取完!);end;end.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号