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

 我来答
娱乐小八卦啊a
高粉答主

2019-10-17 · 娱乐小八卦,天天都知道
娱乐小八卦啊a
采纳数:256 获赞数:117860

向TA提问 私信TA
展开全部

第一种方式: 使用无参数的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()

lanniao007
推荐于2016-12-01 · TA获得超过1012个赞
知道小有建树答主
回答量:1489
采纳率:40%
帮助的人:450万
展开全部
必须要初始化:Randomize。没有种子。出来的数据肯定是固定的。
Randomize 语句示例
本示例用 Randomize 语句初始化随机数生成器。由于忽略了数值参数, 所以 Randomize 用 Timer 函数的返回值作为新的随机数种子值。
Dim MyValue
Randomize ' 对随机数生成器做初始化的动作。
MyValue = Int((6 * Rnd) + 1) ' 生成 1 到 6 之间的随机数值。
追问
不是啊,我要的是每次运行程序时都产生一个新的随机数
追答
我只是给你举个例子。你完全可以将
MyValue = Rnd
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xlzzc
2011-09-12 · TA获得超过7301个赞
知道大有可为答主
回答量:4205
采纳率:50%
帮助的人:1447万
展开全部
'需要先使用
Randomize ' 对随机数生成器做初始化的动作。
'但不能保存绝对不重复
'你说的每次应该是有限的,产生的数是有范围的,数量的个数就是有限的,根据抽屉原理,总有重复的时候。
'除非……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zx001z7d53
2011-09-12 · TA获得超过2万个赞
知道大有可为答主
回答量:2.4万
采纳率:52%
帮助的人:5670万
展开全部
需要先使用
Randomize ' 对随机数生成器做初始化的动作。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
别夸我我会骄傲的3527
2011-09-13 · TA获得超过207个赞
知道答主
回答量:234
采纳率:0%
帮助的人:110万
展开全部

a(n) = Int(90 * Rnd) + 10
改为 a(i) = Int(90 * Rnd) + 10
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式