CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

请教:用RND()函数,每次都要得到一个0~23的整数,怎么办?RND()函数每次的结果都不同,怎么写?

楼主imur()2003-12-01 01:27:54 在 VB / 基础类 提问

请教请教! 问题点数:0、回复次数:11Top

1 楼eports(飘零风)回复于 2003-12-01 02:01:27 得分 0

用   int(rnd*24)   就可以产生0   -   23   的随机整数了。Top

2 楼imur()回复于 2003-12-01 03:22:23 得分 0

谢谢大侠的答复!  
  那么,要想RND()函数每次的结果都不同,怎么写?  
   
  谢谢先!Top

3 楼guochj624(伤感男孩)回复于 2003-12-01 07:22:47 得分 0

在程序加载时执行Randomize语句,然后再用Rnd()函数产生随机数。  
   
  Private   Sub   Form_Load()  
          Randomize  
           
          ……  
   
  End   Sub  
   
   
  Top

4 楼boydgmx(授人以鱼不如授人以渔(baidu&google))回复于 2003-12-01 08:14:01 得分 0

Private   Sub   Command1_Click()  
          Dim   i   As   Integer  
           
          For   i   =   1   To   10  
                  Randomize  
                  Debug.Print   Fix(Rnd()   *   24)  
          Next  
           
  End   Sub  
  Top

5 楼northwolves(狼行天下)回复于 2003-12-01 09:09:45 得分 0

Private   Sub   Command1_Click()  
  getrnd   20  
  End   Sub  
  Sub   getrnd(ByVal   m   As   Integer)   'get   m   rnd   number   between   0-24  
  Dim   x   As   New   Collection,   temp   As   Integer  
  For   i   =   0   To   24  
  x.Add   i  
  Next  
  Randomize  
  For   i   =   1   To   m  
  temp   =   Int(Rnd   *   x.Count   +   1)  
  Debug.Print   x(temp)  
  x.Remove   temp  
  Next  
  End   SubTop

6 楼guochj624(伤感男孩)回复于 2003-12-01 09:24:50 得分 0

Randomize只运行一次就行了,用不着每次都调用。Top

7 楼imur()回复于 2003-12-01 14:03:06 得分 0

谢谢各位高人的答复!  
  请教:Randomize的语法是Randomize([number]),请问:那个参数是干什么的?  
   
  谢谢先!Top

8 楼Maconel(Maconel)回复于 2003-12-01 15:05:30 得分 0

用时间函数time取得当前的时间,然后得到当前的秒,这个秒是完全随机的,再用这个秒来使用随机函数,就可以得到不同的值了Top

9 楼chewinggum(口香糖·个人二五计划第一年)回复于 2003-12-01 15:15:22 得分 0

标准回答(msdn节选):  
   
  Rnd   函数返回小于   1   但大于或等于   0   的值。  
   
  对最初给定的种子都会生成相同的数列,因为每一次调用   Rnd   函数都用数列中的前一个数作为下一个数的种子。  
   
  在调用   Rnd   之前,先使用无参数的   Randomize   语句初始化随机数生成器,该生成器具有根据系统计时器得到的种子。  
   
  为了生成某个范围内的随机整数,可使用以下公式:  
   
  Int((upperbound   -   lowerbound   +   1)   *   Rnd   +   lowerbound)  
   
  这里,upperbound   是随机数范围的上限,而   lowerbound   则是随机数范围的下限。  
   
  注意   若想得到重复的随机数序列,在使用具有数值参数的   Randomize   之前直接调用具有负参数值的   Rnd。使用具有同样   number   值的   Randomize   是不会得到重复的随机数序列的。  
  Top

10 楼trite(追风少年)回复于 2003-12-01 15:54:02 得分 0

同意   eports(飘零风)Top

11 楼Rick110AAA(海牛猪猪 And HerosⅢ之比蒙)回复于 2003-12-01 16:16:36 得分 0

说简单一点:Randomize   (Timer)就是根据Timer的值初始化一个随机数序列Top

相关问题

  • 函数int(rnd(0)*100)是在哪个范围内的整数?
  • 整数转字符串的函数。。。。
  • 求字符串变整数的函数
  • 大整数转换为小整数的幂函数形式
  • 有四舍五入的函数吗? 有取整数部分的函数吗?
  • 那个函数能把字符串转换成整数.
  • 用什么函数可以取一小数的整数部分
  • C++中,取整数是哪个函数啊
  • 请教:整数转字符串的函数是什么?
  • API函数需要64位的整数,PB中怎么办?

关键词

  • 函数
  • rnd
  • 随机数
  • 请教
  • 整数
  • 调用
  • randomize
  • lowerbound
  • 参数
  • 序列

得分解答快速导航

  • 帖主:imur

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo