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

为什么生成不了真正的随即数?

楼主pigsanddogs(我爱吃猪肉,但是长不胖,为什么??)2003-06-02 19:49:30 在 VB / 基础类 提问

Private   Sub   Command1_Click()  
          Randomize   41  
          For   i   =   1   To   5  
                  b   =   Rnd(1)  
                  Debug.Print   b  
                  MsgBox   b  
          Next   i  
  End   Sub  
   
  每次结果都不一样! 问题点数:21、回复次数:10Top

1 楼pigsanddogs(我爱吃猪肉,但是长不胖,为什么??)回复于 2003-06-02 19:56:13 得分 0

题目错了!  
  我的目的是  
  每次command1   click的时候   都生成  
  相同的伪随即数。即每次msgbox出来的数列都是一样的  
    所以randomize   一个固定值  
  可事实证明还是乱七八糟的。   烦!Top

2 楼pigsanddogs(我爱吃猪肉,但是长不胖,为什么??)回复于 2003-06-02 20:02:29 得分 0

哦,刚看到了,在randomize   41   之前   要加一句   rnd   -1  
  这样每次都是唯一的。   而且不randomize   41   只要先rnd   -1也是唯一的  
  很奇怪,那样要randomize干什么用?   但是有了它又不一样,没有也行,单独使用randomize   xx  
  却不行,参考msdn也没说到实处,很纳闷,   微软搞什么鬼Top

3 楼lightwiter1(lightwiter)回复于 2003-06-02 20:06:26 得分 4

当你在随机后再次要打乱随机数时就要使用randomize啦Top

4 楼Wit253(阿狼)回复于 2003-06-02 20:12:01 得分 4

randomize  
  很有用,否则你每次随机出来的数列都将是一样的  
  就是说假设第一次是2、5、1、6、7...  
  那么以后都是2、5、1、6、7...Top

5 楼lucy198204(出来混,总是要还的)回复于 2003-06-02 21:26:12 得分 4

可不可以不加RANDOMIZE   这样的话每次出来的数都是一样的  
  Top

6 楼lsftest()回复于 2003-06-02 22:14:46 得分 5

"在randomize   41   之前   要加一句   rnd   -1"?????!!!  
  "单独使用randomize   xx却不行"?????!!!!  
  我只听说过如果想要真正的随机数序列就要用randomize去初始化计算机的随机数发生器。。然后再用RND生成随机数。。如果按照你的要求,randomize的确是可有可无。。另外。。。如果只是单独使用randomize而没有RND,那是完全没有意义的。。。好好看看这两个语句的用法吧。。。。。。Top

7 楼shuchang0626(舒畅)回复于 2003-06-02 22:19:54 得分 4

用randomize  
  不过随机化种子取一个变化的量,比如说系统时间之类的吧Top

8 楼pigsanddogs(我爱吃猪肉,但是长不胖,为什么??)回复于 2003-06-03 09:21:51 得分 0

由于是个函数,   需要每次进入,   生成了的伪随机数序列都是一样  
  于是我这样写  
  randomize   41  
  for   cnt   =   1   to   30  
          msgbox   rnd(1)  
  next   cnt  
  应该每次进入都是一样的吧,   可是他还是随机的。  
  我是想让他不随机都难!!  
  纠正一下:我题目的意思错了:   为什么我rnd想生成固定的伪随机数都难!  
  我找了很多资料,都是介绍如何生成随机数的,   一般   randomize   timer等初始化seek  
  可我这里要写个函数加密字符串,   我想每次结果都一样。就想randomize   一个固定数  
  却办不到...Top

9 楼pigsanddogs(我爱吃猪肉,但是长不胖,为什么??)回复于 2003-06-03 09:24:41 得分 0

to     回复人:   Wit253(阿狼)   (   )   信誉:100     2003-06-02   20:12:00     得分:0    
  randomize  
  很有用,否则你每次随机出来的数列都将是一样的  
  就是说假设第一次是2、5、1、6、7...  
  那么以后都是2、5、1、6、7...  
   
  我的目的就是想这样,   第一次   是   2,5,1,6,7  
  第2次,以后还是2,5,1,6,7    
  可是不管我怎么用,   就是办不到!  
   
  他只是每次运行程序都这样,   可是我在一个函数中,这样写,需要多次调用,却不一样  
     
     
  Top

10 楼pigsanddogs(我爱吃猪肉,但是长不胖,为什么??)回复于 2003-06-03 09:44:08 得分 0

根据msdn的解释,  
  1   如果rnd后面是一个负数,   则用该数做为seek,   生成一个数,实践证明结果也一样  
  2   rnd   后面如果是一个正数,   则用前续rnd的结果做为seek,生成一个数   (这句很含糊!)  
  3   rnd   后面如果是0   ,则调用最后一次调用rnd函数的结果,实践证明也一样  
  4   rnd     后面不跟参数,则同   rnd   后面跟正数  
  5   randomize   xx     用xx初始化seek,   如果省略xx,   则同   randomize   timer  
  我想系统维护了一个内部变量,   记录了当前的seek吧!  
  但是这个seek有什么用!   因为rnd不过哪个版本都不调用这个seek!  
  所以   我用上面的函数没作用!(randomize   一个固定数后,   后面的结果还是随机的)  
  但是你也不能说他完全没作用..如果使用了randomize   a   和   randomize   b,   他就是不一样  
   
  6   其实是目前写ini文件加密模块的时候,   看了http://expert.csdn.net/Expert/topic/1836/1836666.xml?temp=.1967279  
  这个帖的时候才有这种想法的,   在那里面randomize前面有个rnd   -1   ,我当时就很含糊  
  这个有什么用,按照以前解释,   randomize   一个固定值(他那个函数里面是一个参数),   后面的rnd  
  应该是固定的啊!   那rnd   -1   有什么用?   不过看了msdn的解释,   rnd   -1是一个固定值,后面的rnd以  
  前续的rnd结果做seek,   这样他就是固定的了,   这样一想,randomize   这个有什么用?   不是没用?  
  实验的结果证明如果不加randomize也是可以用的,每次都是固定的伪随机数,   ,如果只有randomize,而没有rnd   -1却不是固定序列伪随机数,   按照这样的解释,   randomize就是个没用的东东,不过你说他没用,   但是在那个函数里面,用了没用结果就是不一样,   莫非还要联合使用?????  
  其实还是对3:rnd(   一个整数   )的计算方式不理解,   它到底是调用前续rnd函数的结果来实现呢?   还是调用randomize后的seek?   恩,好象都有影响.   希望大家讨论下Top

相关问题

  • 生成数据库的sql语句为什么总报错呢?
  • 为什么我生成的对话框没有析构函数?
  • asp生成xml为什么没有数据显示
  • 在2003.net里,为什么这个不能生成随机数
  • 为什么<TD><%=k%></TD><TD><%=kk%></TD>生成后为什么没有数。
  • 批量生成随即数问题!高分和QQ秀酬谢!
  • 求一个生成随即数的程序
  • 为什么生成可执行文件后连接不上数据库???急!!!
  • 为什么随机数不能生成呢?我执行完,一片空白!
  • 菜鸟问题——我生成cdaorecordset为什么没有析构函数?

关键词

  • 函数
  • rnd
  • 随机数
  • randomize
  • 生成
  • 一样
  • 调用
  • seek
  • 初始化
  • 出来的数列

得分解答快速导航

  • 帖主:pigsanddogs
  • lightwiter1
  • Wit253
  • lucy198204
  • lsftest
  • shuchang0626

相关链接

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

广告也精彩

反馈

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