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

请问怎么让自动产生的随机数不重复呀

楼主kuangyulai(不务正业)2004-08-04 13:41:38 在 VB / 数据库(包含打印,安装,报表) 提问

请问怎么让自动产生的随机数不重复呀,请指教   谢谢! 问题点数:0、回复次数:6Top

1 楼_1_(该用户已封杀)回复于 2004-08-04 13:43:27 得分 0

产生1000个数     打乱次序     就行了Top

2 楼Leftie(左手,为人民币服务)回复于 2004-08-04 13:44:06 得分 0

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

3 楼_1_(该用户已封杀)回复于 2004-08-04 13:44:36 得分 0

Private   Sub   Command1_Click()  
  Dim   i   As   Integer  
  Dim   x(999)   As   Integer  
  Dim   Rnd1   As   Integer  
  Dim   Rnd2   As   Integer  
  Dim   x1   As   Integer  
          Randomize  
  For   i   =   1   To   1000  
          x(i   -   1)   =   i  
  Next  
  For   i   =   0   To   9999  
   
          Rnd1   =   Int((1000   *   Rnd))  
          Rnd2   =   Int((1000   *   Rnd))  
          x1   =   x(Rnd1)  
          x(Rnd1)   =   x(Rnd2)  
          x(Rnd2)   =   x1  
  Next  
  List1.Clear  
  For   i   =   1   To   1000  
   
          List1.AddItem   x(i   -   1)  
  Next  
   
  End   SubTop

4 楼junki(『.NET技术争霸天下』)回复于 2004-10-19 15:41:18 得分 0

'引用  
  Randomize   语句示例  
  本示例用   Randomize   语句初始化随机数生成器。由于忽略了数值参数,   所以   Randomize   用   Timer   函数的返回值作为新的随机数种子值。  
   
  Dim   MyValue  
  Randomize       '   对随机数生成器做初始化的动作。  
   
  MyValue   =   Int((100   *   Rnd)   +   1)       '   生成   1   到   100   之间的随机数值。Top

5 楼vbman2003(家人)回复于 2004-10-19 16:26:53 得分 0

1-100之间,产生10个不重复的随机数:  
   
  Private   Sub   cmd_Click()  
          Dim   iColl   As   New   Collection  
          Dim   i,   iTemp   As   Long  
          For   i   =   1   To   100  
                  iColl.Add   i  
          Next   i  
          Randomize  
          For   i   =   1   To   10  
                  iTemp   =   Int(Rnd   *   iColl.Count)   +   1  
                  Debug.Print   iColl(iTemp)  
                  iColl.Remove   iTemp  
          Next   i  
          Set   iColl   =   Nothing  
  End   SubTop

6 楼fly_higher(凌云一笑)回复于 2004-10-19 20:17:37 得分 0

系统调用RND函数就会将随机产生的数值存在内存里,不会被重新定义。这样,当你再次使用RND函数时出现的只会是上次RND运行的结果。所以,使用随机函数前使用randomize       函数。  
   
  Top

相关问题

  • 请问如何产生无重复的随机数列?
  • 如何产生不重复的随机数?
  • 求产生不重复的随机数的算法!!!
  • 有没有什么方法产生不重复的随机数??
  • 关于产生随机数出现重复的问题
  • 如何产生不重复的随机数
  • 怎么产生数字不重复的随机数啊?
  • 产生不重复随机数的问题
  • 我生成的产生随机数有大量的重复
  • 如何产生随机数且不重复?

关键词

  • 函数
  • 数值
  • 语句
  • 随机数
  • rnd
  • icoll
  • integerdim
  • 重复
  • 生成器
  • 生成

得分解答快速导航

  • 帖主:kuangyulai

相关链接

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

广告也精彩

反馈

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