vb中,怎样产生1~n之间的随机整数

来源:百度知道 编辑:UC知道 时间:2024/07/01 01:36:36
我做了几道题,看得我晕忽晕忽,向高手请教哈
产生1~6之间的一个随机整数的为:x=int(Rnd()*6+1)
产生10~99之间的一个随机整数为:y=int(Rnd*90+10)
产生1~100之间的一个随机整数为:z=Int(101*rnd),或z=Int(100*rnd)+1,或z=Int(100*rnd)
最后一个产生1~100那个中,这三个中那个是对的???
还有产生1~n之间的的一个随机整数有什么规律???哪些用哪个?
O(∩_∩)O谢谢了!

VB的Rnd函数,可以产生伪随机的一个纯小数。
要得到1~n之间的随机整数,可以配合取整函数Int:
x=Int(Rnd*n)+1
就可以了。其中,Rnd*n就得到了0<x'<n的实数;取整Int(Rnd*n)以后就成了
0<=x'<=n-1的整数。再加上1,就成了1<=x<=n了。
为了在不同的运行时能得到不同的随机整数,可以在使用Rnd函数之前,加上语句Randomize,就可以利用系统时钟作为随机数种子,使得每次运行能得到不同的随机整数序列了。
例如:
Randomize
For i = 1 To 10
x = Int(Rnd*n) + 1
Print x;
Next i

看看这个,你一定会懂的:
Rnd函数 返回

返回一个包含随机数值的 Single。

语法

Rnd[(number)]

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

返回值

如果 number 的值是 Rnd 生成
小于 0 每次都使用 number 作为随机数种子得到的相同结果。
大于 0 序列中的下一个随机数。
等于 0 最近生成的数。
省略 序列中的下一个随机数。

说明

Rnd 函数返回小于 1 但大于或等于 0 的值。

number 的值决定了 Rnd 生成随机数的方式。

对最初给定的种子都会生成相同的数列,因为每一次调用 Rnd 函数都用数列中的前一个数作为下一个数的种子。

在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器,该生成器具有根据系统计时器得到的种子。

为了生成某个范围内的随机整数,可使用以下公式:

Int((upperbound - lowerbound + 1) * Rnd + lower