如何用VB产生一个每次都不一样的随机数啊,用rnd的话只能产生一个固定的数字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用VB产生一个每次都不一样的随机数啊,用rnd的话只能产生一个固定的数字相关的知识,希望对你有一定的参考价值。

第一种方式: 使用无参数的Random()构造函数;

默认种子值是使用DateTime.Now.Ticks作为种子值的,如果触发Random函数间隔时间很短,就有可能造成产生一样的随机数。

第二种方式: 使用RNGCryptoServiceProvider生成种子值;生成速度较慢。

1、Random() 

使用与时间相关的默认种子值,初始化 Random 类的新实例。

2、Random(Int32) 

使用指定的种子值初始化 Random 类的新实例。

参数为种子值,数据类型为Int32,用来计算伪随机数序列起始值的数字。 如果指定的是负数,则使用其绝对值。

Random类生成随机数是伪随机数,所以在Random的内部产生机制中还是有一定规律的,并非是真正意义上的完全随机。 如果种子值相同则每次均产生相同的随机数。


扩展资料

Random 类位于 java.util 包中,主要用于生成伪随机数。Random 类将 种子数 作为随机算法的起源数字,计算生成伪随机数,其与生成的随机数字的区间无关。

创建 Random 实例时,若没有指定种子数,则会以当前时间作为种子数,来计算生成伪随机数。拥有相同种子的 Random 实例,在相同次数下,生成的伪随机数完全相同。

random.nextBoolean():

用于从该随机数生成器的序列中得到下一个伪均匀分布的 boolean 值。

random.nextBytes():

用于生成随机 byte 值并将其放入用户提供的 byte 数组中,生成的随机 byte 数等于 byte 数组的长度

参考资料来源:

百度百科——random()

参考技术A 必须要初始化:Randomize。没有种子。出来的数据肯定是固定的。
Randomize 语句示例
本示例用 Randomize 语句初始化随机数生成器。由于忽略了数值参数, 所以 Randomize 用 Timer 函数的返回值作为新的随机数种子值。
Dim MyValue
Randomize ' 对随机数生成器做初始化的动作。
MyValue = Int((6 * Rnd) + 1) ' 生成 1 到 6 之间的随机数值。追问

不是啊,我要的是每次运行程序时都产生一个新的随机数

追答

我只是给你举个例子。你完全可以将
MyValue = Rnd

本回答被提问者采纳
参考技术B '需要先使用
Randomize ' 对随机数生成器做初始化的动作。
'但不能保存绝对不重复
'你说的每次应该是有限的,产生的数是有范围的,数量的个数就是有限的,根据抽屉原理,总有重复的时候。
'除非……
参考技术C 需要先使用
Randomize ' 对随机数生成器做初始化的动作。
参考技术D
a(n) = Int(90 * Rnd) + 10
改为 a(i) = Int(90 * Rnd) + 10

如何用python实现随机抽取? 规则如下: 所有数据分成n组; 每组有m个数; 抽取数据时,每组

如何用python实现随机抽取? 规则如下: 所有数据分成n组; 每组有m个数; 抽取数据时,每组随机抽取x个,x每次抽取时提供; 每次抽取的总人数用一个变量y进行控制;

每组产生x个不同的小于m的随机数,然后用这些随机数作为下标追问

不懂,能详细举例吗?

追答

额,我说的是我自己想的方法,不知道python有没有提供方法。
就是说对一个组,x是已知的吧,然后产生x个小于m的随机数,而且要不同。然后就用这些随机数作为序号,来获取对应的数据。也就相当于随机从分组中抽取了x个数。
至于你说的总人数用y控制,我就不明白你什么意思了。

追问

我这么理解对吗?假定m为4,x为2,产生2个小于4的随机数为1和3,要想用1和3作为序号的话,是否意味着需要对原来4个数据提前进行编号?

追答

你的数据是怎么存放的?我以为你存放在列表里呢。

追问

明白了!谢谢

参考技术A 在梦里

以上是关于如何用VB产生一个每次都不一样的随机数啊,用rnd的话只能产生一个固定的数字的主要内容,如果未能解决你的问题,请参考以下文章

VB中randomize的作用

VB中randomize是用来产生啥样的随机数啊?

如何用VB.NET生成一个随机字符串

vba 如何让每次生成的随机序列都一样?比如调用random()函数,但每次得到的序列都不一样?

如何用vb解答随机产生N个二位正整数存放在一维数组中,求数组的最大值、平均值。

用VB做一个产生随机数的程序