论坛首页 入门技术论坛

c++ 随机数rand()必须结合srand(time(NULL))

浏览 8072 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-04-16  
引用

在c++中,使用c++ rand()获取随机数必须结合srand(time(NULL)),rand()是依靠初始化值产生随机数,而srand(time(NULL))初始化初始值,使每次产生的随机数不一样。在不使用srand(time(NULL)),通过测试遍历一万遍对于某个数出现的频率很大,如:()
int flag1 = 0;
    for(int i = 0;i <= 100000000;i++)
    {
            //srand(time(NULL));
            int a = rand()%101;
            if(a == 99)
            {
               flag1++; 
            }
    }
    cout<<flag1<<endl;
    /**************************/
    /*2*/
    int flag2 = 0;
    for(int i = 0;i <= 100000000;i++)
    {
            srand(time(NULL));
            int a = rand()%101;
            if(a == 99)
            {
               flag2++; 
            }
    }
     cout<<flag2<<endl;

   发表时间:2009-04-19  
刚查了下

“Srand是种下随机种子数”

根据当前时间重新生成的随机种子数
当然比全部使用1个种子数的“随机性”更强了

楼主说的没错~
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics