vb程序中经常出现rndomize,请问它有什么用?

来源:百度知道 编辑:UC知道 时间:2024/05/10 10:28:03
如题,如果程序中没有那语句行不行?

在程序中的Rnd都不是真的“随机数”,而是术语称为“伪随机数”。就是说这是一个函数,每次执行时根据前一次的结果生成一个新数,两个数之间又没有明显的联系(当然是一定有联系的)。
首先,计算机是很难产生随机数的,因为自计算机产生就以“精确”为宗旨。计算机是精确型计算,而人脑是模糊型计算。这样计算机在学术计算方面较人脑优秀,但是如果用来分析比如两张照片是不是一个人、这个人算不算胖等的问题,还有随机数的问题,就体现出缺点了。所以,在这个随机数的问题上,我们用“伪随机数”来代替真随机数。如前所述,Rnd函数需要一个数作为基础才能产生下一个数,然后它可以用那个数再产生下下个数,无穷无尽。但这第一个数是什么?那就是“随机数种子”。如果给定相同的种子,则会产生相同的伪随机数列。这个“种子”的产生就在Randomize(你的拼错了)。这条语句以系统毫秒数经过计算形成第一个伪随机数,以后通过Rnd算法生成其他随机数。
由于每次调用Randomize都会生成新的种子,所以如果希望调用上一次生成的随机数列,不能使用Randomize重新初始化随机数列,而应该用负值调用Rnd函数。这样将产生和上次Randomize后完全相同的随机数列。

Randomize 语句示例
本示例用 Randomize 语句初始化随机数生成器。由于忽略了数值参数, 所以 Randomize 用 Timer 函数的返回值作为新的随机数种子值。
Dim MyValue
Randomize ' 对随机数生成器做初始化的动作。
MyValue = Int((6 * Rnd) + 1) ' 生成 1 到 7 之间的随机数值。
=======================
如果没有Randomize这一句,那程序每次运行时调用Rnd产生的随机数都会是相同的。

randomize 作用是初始化随机数列的。让你每次用rnd得到的数列不同。
不用它,rnd每次得到的随机数列相同。就不是真随机了。