随机函数(100分)

  • 主题发起人 主题发起人 lilyer
  • 开始时间 开始时间
L

lilyer

Unregistered / Unconfirmed
GUEST, unregistred user!
我用的DELPHI书中没有告诉我随即函数,我想知道DELPHI的一些随机函数,以及它们的功能。谢谢。
 
randsize;
初始化
random(randseed);
生成随机数.
函数名可能有误. 你可打 KEY WORD= RAND 在DELPHI HELP 中查.
 
function Random [ ( Range: Integer) ];
Description
返回一个x,0<=x<range
如果未指定 Range,返回一个实型的x,0 <= X < 1.
初始化随机数,调用Randomize,
或者给RandSeed赋值.
 
randomize;
a:=random(range);
a为real型,界于0到range之间
 
先用randomize初始化radom 函数,一般用机器的时间,
然后你就可以调用radom函数来做你想做的是,在
delphi3从入门到精通 这本书里面有一个有关多线程的
例子里面有将随机函数的简单介绍。
如果你需要随机函数的原码,我可以给一个用c语言写的程序。
 
randomize;//根据系统时间生成随机种子。
random(Max:Integer);//产生一个从0..Max-1之间的整数。
还有一个产生高司分布的随机函数,我忘了什么名字了,在Math单元中声明了。
可以查帮助。
 
这个问题也100分? 查查帮助就全知道了.
 
呵呵,那么多人呀,结束了吧,谁让我来晚了
 
呵呵,这个问题掉了真可惜啊。hexi的回答比较好
 
呵呵, 再补充一下:-)
random()缺省返回0<=x<1的数, 如果改变randseed的值, 就可以改变缺省的范围.
如:
randseed:=10;
x:=random();
0<=x<10
 
先看想取随机数的范围 例如 在100 内的随机数 为 random(100)
可用 if 语句来卡范围 例如 在20 到100之间
var
s:integer;
begin
s:=random(100);
if s<20 then
s:=s+20;
end;
 
这个问题已经解决,请接受答案或继续提问.
 
Delphi的随机函数有一缺陷,即每次程序运行时,随机数的值是一样的,细心
的人可观察一下,大概是1、4、27、....
我的解决方法,调用二次Random().第一次产生1000个随机数,摒弃掉不用;第
二次调用Random()的随机数才用,真正实现了“随机数”的功能。
 
jams,因为你没randomize。
 
设了也是如此。
另:CAKK,大富翁的主页是否更新过,原先每次点击“待答问题”时都能自动
刷新,但今天却怎么也不行了,只能用Netscape的Reload功能,太繁琐啦!
 
不可能吧?!
 
用我的随机函数肯定没有Jams说的问题。
因为我的随机函数要用来对图象产生
噪声,要求每次的噪声要不同。
你尽管放心的用。呵呵!
 
确是个办法!
 
to jems
的确因为你没randomize。
但passcal的随机函数,并不真麽随机产生...
你可以根据现在的时间,自己做一个随机函数
 
Jams: 我的经验是:
只有第一次进来才点击"待答问题",以后需要刷新时,直接在右边的frame
里面按鼠标右键,然后从菜单里面选"刷新",这样可以只刷新当前的frame.
浏览问题一律按右键,然后选"在新窗口打开",这样互不影响.
 
后退
顶部