比如说我用0-25的随机数,第一次出来的随机数是5
以后就不能再出现5了
第二次出来的是6
以后就不能再出现6了
第三次出来的是15
以后就不能在出现15了
直到0-25个数全部用完,
再从第一次开始了
简单的说就是随机抽取0-25里面的数,用过以后就不在用了,直到0-25里面的所有数都用完,在重新开始求解
以后就不能再出现5了
第二次出来的是6
以后就不能再出现6了
第三次出来的是15
以后就不能在出现15了
直到0-25个数全部用完,
再从第一次开始了
简单的说就是随机抽取0-25里面的数,用过以后就不在用了,直到0-25里面的所有数都用完,在重新开始求解
解决方案 »
- 学《Delphi》有啥好教程?
- 高人帮忙,寻找一个类似于PageControl的功能强大的控件
- 一个C++翻译成delphi的问题(200分求教)
- 线程间同步有哪些方法?各有什么特点??
- 很简单的问题 :格式化串
- 关于加密的一点小问题,各位大虾帮帮忙吧:)
- 这个错误语句是什么意思?帮忙解释一下、
- Delphi6+Access---如何导入录入的数据?
- 菜鸟请教:我用D5的ADO组件写了一个连接数据库的程序,生成一个EXE文件供PB调用,有的机器能跑,有的不能,WHY?
- 不知道如何才能用delphi取得本机的ip地址啊????
- 弱弱的问个小白问题,请大家看看
- 2010年11月2日,老爸老妈的结婚纪念日,散分庆祝。
然后循环每个元素与random(25)+1号元素交互,即可var
i,t,p:integer;
arr:array [1..25] of integer;
begin
for i:=1 to 25 do
arr[i]:=i;
for i:=1 to 25 do
begin
t:=arr[i];
p:=random(25)+1;
arr[i]:=arr[p];
arr[p]:=t;
end;
end;
str.Clear;
for i:=0 to 25 do
str.Add(IntToStr(i));
[code]
然后每次取随机数时,只是取队列中序号,然后取出对应的数值,然后将该数值从队列中删除
[code=Delphi(Pascal)]
i:=str.Count;
Randomize;
i:=Random(i);
s:=str.Strings[i];
str.Delete(i);不知道楼主能明白乎