我已经randomize了,为什么 每次random出来的随机数字都一样的?(50分)

  • 主题发起人 主题发起人 小元
  • 开始时间 开始时间

小元

Unregistered / Unconfirmed
GUEST, unregistred user!
每运行一次程序, random出来的数字都跟上一样相同,这样的随机数还有什么用?有好办法解决没有?
 
用个时间初始化,因为那个是伪随机数
 
把相关代码贴出来,你的代码有问题。
 
randomize在窗体创建的时候调用,random在实际需要的时候调用.千万不要
begin
randomize;
i:=random(100);
end;
这样紧跟着调用,那样是很容易出现同样数字的.
 
begin
randomize;
i:=random(GetTickCount);
end;
 
每次使用random()函数之前先执行randomize让机器产生一段随即序列供random()使用
 
同意zwq0117的说法,randomize只需要执行一次,然后再每个要随机数的地方使用random()就可以了,不需要每次random()前都用一下randomize
 
检查一下random()之前的代码吧,如果有MemStream类的操作,建议把这段代码写到一个函数或过程,我之前遇到过for循环越界的问题,就是MemStream闹的
 
接受答案了.
 
后退
顶部