当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

 ·选择题(中程)-请告诉我    »显示摘要«
    摘要: 考中程是不是必须看以下书籍: 计算机基础知识、c语言、数据结构、计算机组成原理、计算机体系结构、编译原理、汇编语言、数据通信与计算机网络、离散数学、操作系统、计算机算法 如有多列的,请指出来,少了请补充,不胜感激! ......
 ·关于一个sql语句的书写    »显示摘要«
    摘要: 某一表结构如下: 日期 收入 支出 2000-03-01 60 40 2000-03-02 40 50 2000-03-05 40 30 分别写一sql语句分别完成 日期 收入 支出 余额 2000-03-01 60 40 20 2000-03-02 40 50 10 2000-03-05 40 30 20 以及 日期 收入 支出 余额 2000-03-01 60 40 20 200......


当随机数和计时器碰到一起时,怎么会这样,帮帮我

我用SDK写了个小东东,其中用到了计时器和随机数。  
  先说随机数,函数体是这样的。  
  int   GetRandNumber   (   )     {  
  int   rNumber;  
  srand   (   time(   NULL   )   );  
  rNumber   =   rand()   %   26;  
  return   rNumber;  
  }  
  我想大家一看就懂了,就是求26以内的随机数,我也就不多说了。!以时间做为种子的!  
  而计时器,每两秒运行一次,每次都调用这个随机数函数。   但不知道为什么,随机数竟然会变得有规律了,求出来的数,比如,4,25,1,7,     4,25,1,7,         4,25,1,7………  
  倒,竟然这么有规律,这是为什么呀!但我要是把rand()   %   26;中的26改成24就没事儿了。或者把计时器改成3.5秒以上也没什么事儿了。   一切就正常了。    
  这是怎么回事儿,   我必须用rand()   %   26;中必须用26,计时器也必须用两秒,   这个问题该怎么解决呢。

NO.1   作者: icansaymyabc

srand   (   time(   NULL   )   );  
  这一句把它放到程序的入口处或初始化函数里,保证他被执行且只被执行一次即可。  
  不要放在会被多次调用的函数里。  
 

NO.2   作者: SatanLi1982

放在初始化函数中,或类的constructors  
  用SetTimer()每两秒发送一个消息  
  再rand()就行了

NO.3   作者: rendy

srand   (   time(   NULL   )   );  
   
  在程序开始处写一次就行。  
  注意:这种方法生成的随机数是伪随机数,产生真正的随机数一般都用自然界中真正随机的事来模拟。

NO.4   作者: rendy

自然界中真正随机的事来模拟,是应用比较严格的场合,用硬件来产生,一般用不到。  
 


    摘要: 我用atl做的ocx,在程序里已经通过代码实现标记控件为安全的(主要是在dllregister和undllregistr中写注册表相应键)。 然后对控件进行签名(证书是我自己创建ca认证中心,然后给我自己颁发的个人证书,然后我在浏览器里信任并安装自己创建的根证书,所有的页面安全提示都没有,绝对正常)。 在浏览器里自动下在安装控件都没问题。 我的ocx在初始化时会在本地硬盘创建目录,我通过资......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE