2016昭通教师补员真题:VB中随即函数为什么每次的得数都是一样的

来源:百度文库 编辑:神马品牌网 时间:2024/05/05 06:43:11
Int(Rnd * 9000000000#) + 1000000000
我要得到的是一个十位数~~~~
每次运行的结果却都是: 7349927604
有人知道这是为什么吗???

VB里得到都是伪随机数,所谓的随机数也是系统根据一定算法得出的。
如果演算随机数的根据(即随机数种子)一样,那么每次得出的随机数序列也就一样了。
为了得到不一样的随机数,就必须保证每次给的种子不一样。
只有时间每一分每一秒都在变化,所以使用
randomize
可以用时间来初始化随机数种子,保证每次的随机数序列不一样

用Randomize 函数初始化.

////////////////////////////
Randomize 语句

初始化随机数生成器。

语法

Randomize [number]

可选的 number 参数是 Variant 或任何有效的数值表达式。

说明

Randomize 用 number 将 Rnd 函数的随机数生成器初始化,该随机数生成器给 number 一个新的种子值。如果省略 number,则用系统计时器返回的值作为新的种子值。

如果没有使用 Randomize,则(无参数的)Rnd 函数使用第一次调用 Rnd 函数的种子值。

注意 若想得到重复的随机数序列,在使用具有数值参数的 Randomize 之前直接调用具有负参数值的 Rnd。使用具有同样 number 值的 Randomize 是不会得到重复的随机数序列的。

加个 Randomize(timer)