我要做一个自动排课系统,对于取课记录要用随机函数生成,每次调用随机函数,都不能返回相同的值。我的程序是这样的:
table1.open;//table跟教学计划库相连;
memo1.clear;
randomize;
i:=1;
check[i]:=random(table1.recordcount+1);
table1.recno:=check[i];//check数组用来记录已经产生的随机数,便于检查以后产生的随机数不能跟以前产生的重复;
while i<table1.recordcount do
begin
t:=random(table1.recordcount+1);
flag:=true;//flag变量用于记录是否产生了跟以前相同的随机数
for k:=1 to i do
if t=check[i] then flag:=false;
if flag then begin
i:=i+1;
check[i]:=t;
table1.recno:=t;
memo1.lines.add(inttostr(table1.recno)+' '+table1.fields[0].asstring); end;
可是当我运行的时候,总是会有两个相同的随机数,不知道为什么!
table1.open;//table跟教学计划库相连;
memo1.clear;
randomize;
i:=1;
check[i]:=random(table1.recordcount+1);
table1.recno:=check[i];//check数组用来记录已经产生的随机数,便于检查以后产生的随机数不能跟以前产生的重复;
while i<table1.recordcount do
begin
t:=random(table1.recordcount+1);
flag:=true;//flag变量用于记录是否产生了跟以前相同的随机数
for k:=1 to i do
if t=check[i] then flag:=false;
if flag then begin
i:=i+1;
check[i]:=t;
table1.recno:=t;
memo1.lines.add(inttostr(table1.recno)+' '+table1.fields[0].asstring); end;
可是当我运行的时候,总是会有两个相同的随机数,不知道为什么!
解决方案 »
- TTreeView的ImageList如何使用PNG?
- 看《VCL架构剖析》疑问的地方,高手请指教。
- 如何实现禁止可执行文件exe文件的复制。?急救?
- 请问如何打印Dev Express 里的cxGrid??
- 如何打印上下标?
- 数据库中有个字段存储的是html文件名,如果把这个html文件的内容显示在quickreport中?
- 如何通过代码,令到stringgrid中的指定的单元格成为活动单元格(获得焦点)
- 苹果进攻安卓阵营:专利大棒失效?
- bde 怎么配 sql server?
- 一瓜简单的问题,大家来看看
- 如何消除控件被左击时出现的边框?
- 急急急!!!十万火急!dbExpress 怎样连接 SQL Server 不能用 ODBC 吗?
前面的程序中我已经进行了一个控制:就是设置一个数组,把已经产生的随机数都放进去,当前产生的随机数跟这个数组中的数一一比较,如果不同,就取来,产生下一个随机数,否则不取,产生下一个随机数 !
可是不知道为什么会产生错误呢!