Randomize & Random

在学习ProcessMessage函数时候看到了这个代码,没用过Randomize函数,所以顺便学习学习;

这个函数在帮助里面的原说明如下:

Initializes the random number generator with a random value.

前面的Initializes the random number generator 应该翻译为:初始化随机数产生器  这应该是没错的,但with a random value 怎么翻译呢,用一个随机值?接着往下看,下面还有个Y:=Random(J);会不会跟这个函数有关系?继续查random()函数:

Generates random numbers within a specified range.//翻译为:在指定的范围内产生随机数

Delphi syntax:

function Random [ ( Range: Integer) ];

下面还有更详细的说明:

In Delphi code, Random returns a random number within the range 0 <= X < Range. If Range is not specified, the result is a real-type random number within the range

0 <= X < 1.

 

到此,我还是看不出来这两个函数有什么关系,再看一下Randomize 的description:

Description

Randomize initializes the built-in random number generator with a random value (obtained from the system clock). The random number generator should be initialized by making a call to Randomize, or by assigning a value to RandSeed.

{Randomize 用一个随机值来初始化内置的随即数产生器(这个随机值来自于系统时钟)。随即数产生器通过调用Randomize函数或指定RandSeed变量来进行初始化。}

Do not combine the call to Randomize in a loop with calls to the Random function. Typically, Randomize is called only once, before all calls to Random.

{不要在同一层循环内同时调用Randomize和Random函数。典型的应用是,在所有的random函数前调用一次Randomize}

 

我的理解是,随即数的产生是要根据系统时钟进行变化的,randomize的作用就是将 the built-in random number generator 和系统时钟挂钩,接下来的random函数才会起作用。

 

靠理论不行,写个例子:

注销randomize,运行,没什么问题啊,照样变化!
把注销去掉,运行,也能变化!
怎么回事,d7合二为一了?
放到d5下,还是一样!
怎么回事?
到网上一查,是去掉randomize后,运行几次的随即数取值都相同,而不是在一次运行期间的数据变化不变。仔细看了一下,果然如此。
到此,这两个函数我搞明白了。
明白是明白了,可是,以前都是直接写Random没有randomize!汗!还好那个数据的重复率几乎为0,要不麻烦大了。
以后还是多看看书,多看看别人的代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值