如何用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()
Randomize 语句示例
本示例用 Randomize 语句初始化随机数生成器。由于忽略了数值参数, 所以 Randomize 用 Timer 函数的返回值作为新的随机数种子值。
Dim MyValue
Randomize ' 对随机数生成器做初始化的动作。
MyValue = Int((6 * Rnd) + 1) ' 生成 1 到 6 之间的随机数值。追问
不是啊,我要的是每次运行程序时都产生一个新的随机数
追答我只是给你举个例子。你完全可以将
MyValue = Rnd
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的话只能产生一个固定的数字的主要内容,如果未能解决你的问题,请参考以下文章
vba 如何让每次生成的随机序列都一样?比如调用random()函数,但每次得到的序列都不一样?