当前位置:小鱼儿玄机1站开奘结果 > 次动作函数 >

【VB】关于randomize随机数

  这里的rnd加1是什么作用?为什么不可以改变顺序?改变顺序之后就会一直输出6.?百科说(Randomize对随机数生成器做初始化的动作。)我如果不在前面加上有什么影响?。。求解答,如果有...

  这里的rnd加1是什么作用?为什么不可以改变顺序?改变顺序之后就会一直输出6.?百科说(Randomize 对随机数生成器做初始化的动作。)我如果不在前面加上有什么影响?。。求解答,如果有这个函数具体解释文章以及使用就更好了。新手在这里求教

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部这是一个较复杂的数学问题:我记得看到过相关介绍,具体不记得是哪里了。

  在计算机程序设计语言中,都有定义了产生随机数的函数,程序员只要调用该函数,就可以产生随机数。数学中,函数需要有一个(或多个)自变量,那么产生随机数的函数,也需要一个自变量。

  Rnd函数需要一个自变量(也叫做产生随机数的种子),来产生一个随机数。但是,我们在使用Rnd函数的时候,并没有给过它什么种子数?这就与Randomize函数有关了:

  1,当使用Rnd函数之前,如果没有使用Randomize函数,那么,系统就以某一个固定的数值作为Rnd函数的种子,从而产生第1个随机数,接下来第2次呢,就以第1次产生的随机数作为种子,来产生第2个随机数,第3次呢,就以第2次产生的随机数作为种子,来产生第3个随机数,....。一直按这个样方法产生一系列随机数,所以,在不使用Randomize函数的情况下,每次使用Rnd函数产生的随机数序列是相同的。

  2,当使用Rnd函数之前,如果使用了Randomize函数,那么Randomize函数会产生一个随机数,然后,当第1次使用Rnd函数产生随机数的时候,系统会把由Randomize函数产生的随机数给Rnd函数作为第1次的种子。

  其中参数,是一个数字,用来作为Randomize函数产生随机数的种子。如果,每次用相同的参数,作为Randomize的种子,那么,结果还是一样,得到的序列是相同的。

  但是,Randomize函数的格式中,参数是可选的,当不带参数的时候,系统会将计算机的时钟(具体不知道使用时钟的什么数据)作为Randomize函数的种子,这样以来,有于计算机时钟是在变化的,特别是它的变化周期比较长,这样,就可以产生不同序列的随机数了。

  记得以前学C语言还是数据结构的书上,专门介绍如何编写产生随机数的函数。更多追问追答追问这个,好吧,差不多懂了些吧。1.randomize用来获得产生随机数的种子,不加会产生每次都一样的随机序列。randomize【参数】什么都不加时,默认为时钟的什么参数,产生不同的随机序列。

  那么,请问!问题中int(6 * rnd +1)是怎么知道区间是1x7 难道是我认为的大于后面加的值而小于乘号前面的6加上后面的1这样的思路吗?追答这个又是数学问题了:

  就是等式(不等式)两边乘以一个大于0的实数,等式(不等式)仍然成立,对吗?

  VB的int(x)函数,是返回不超过X的最大整数。追问看了这个不等式就明白了。0=rnd1。随机范围是那些了。那楼下给的这个Int((upperbound - lowerbound + 1) * Rnd + lowerbound) 是干什么用的追答这个是根据,我回答的第2个问题的原理,用数学的方法推导出来的一般公式,就是当你需要产生的随机数的范围在

  要产生[10,100]范围的随机数,那么Lowerbound = 10,Upperbound =100

  展开全部童鞋,数学四则运算,先乘后加,因此不是rnd加1 而是 6*Rnd然后再加1。

  有问题再追问。更多追问追答追问哦,那么...我如果int(6 *rnd)不加1也会产生随机数,那此时的随机数是那个区间的呢?追答看来你没想明白。。。还是看上面

  你说此时随机数是那个区间追问答案是0-5. Int((5-0+1) * Rnd+ 0) 为什么会是5-0+1而不是6-0+0...这个+1是默认的吗?追答看这个,相当于数学里面的一个固定公式

  然后,看你这里int(6 *rnd),对照一下,lowerbound等于多少?等于0是吧?

  好吧,那Int((upperbound - lowerbound + 1) * Rnd + lowerbound)这个公式求出来的式子做什么用的,哪里能用到,求教

  Randomize初始化,如果不加,不会产生随机数,只会产生按顺序产生固定的数值

  你说一直输出6,应该是没有Randomize的原因更多追问追答追问randomize不加试了一下,还是产生的随机数(没有规律的数字),他的作用好像不是这个。追答randomize不加,你生成几个随机数。然后把程序关了,重新运行,再生成几个随机数,和上次那几个应该一样。记得多年前我试过

  顺便说下上面: rnd产生大于0小于1的数(小数)。6 *rnd自然是生成大于0小于6之间的数(包括小数)。6 *rnd+1,生成大于1小于7的数

http://syn992.com/cidongzuohanshu/400.html
点击次数:??更新时间2019-08-11??【打印此页】??【关闭
  • Copyright © 2002-2017 DEDECMS. 织梦科技 版权所有  
  • 点击这里给我发消息
在线交流 
客服咨询
【我们的专业】
【效果的保证】
【百度百科】
【因为有我】
【所以精彩】