我要设计一个随机抽取数字的软件,要每次都抽不一样的数字...
如果单用random这个函数不用几次就会有相同的数字出现...
请问我要怎么写代码可以防止相同的数字出现呢?我用的是Delphi7软件
如果单用random这个函数不用几次就会有相同的数字出现...
请问我要怎么写代码可以防止相同的数字出现呢?我用的是Delphi7软件
解决方案 »
- 如何在启动画面播放AVI?
- 请教一个关于QuickReport的问题!
- 关于imp\exp?
- 我是个网络管理人员,请问大家怎么用DELPHI编写局域网IP扫描软件,如果扫描出有IP冲突,能否通过DELPHI编写程序修改别人计算机的IP地址和
- 运行时界面上的控件不见的问题。
- 登录窗口(求助!)
- 请大家讨论一下,做一个三层结构的ERP的单据模板应注意的问题?应从那几方面考虑?该怎么做?
- 请教~~~~~~~~
- 请问大家的供销存软件做了多长时间?买价多少?
- 哪个大哥帮我吧下面的PASCAL代码修改成标准的DELPHI的代码啊!急用!!
- 'Array' and 'String'
- TADOQuery 传递日期参数不正确,求教
var
list:TStringList;
i,j:Integer;
begin
list := TStringList.Create;
for j := 0 to 100 do
begin
Randomize;
i := Random(100);
if list.IndexOf(IntToStr(i)) = -1 then
list.Add(IntToStr(i));
end;
ShowMessage(list.Text);
list.Free;
end;
Randomize;//校验码随机数种子
2.比哪说要生成4位数每次都不同就:
CheckNumber := 1000 + Random(8999);
Randomize
然后再
Random(1000)
先初始化随机数 再random
但是也可能不久就会有重复的
你可以用一个stringlist保存已经用过的随机数
然后每生成一个新随机数先判断stringlist中是否存在
再确定是否重新生成即可
防止相同的数字出现,其实不是真随机了,而是发牌:
把待发的牌先全部放到一个list,再打乱
然后顺序取,就行了