zoukankan      html  css  js  c++  java
  • 【编程开发】C语言中随机数rand使用注意事项

    【编程开发】C语言中随机数rand使用注意事项

    标签: 【编程开发】


    声明:引用请注明出处http://blog.csdn.net/lg1259156776/


    说明:随机数在编程开发中非常重要,以C语言中的rand函数为例,使用时需要注意随机数的随机体现在哪里,比如是程序在不同的时刻执行时,相同位置的随机数是否需要一样,还是要每次执行生成的随机数也要不一样,等等,这些都是需要加以关注的地方。


    经测试,发现,在不使用srand这个随机数种子的情况下:每次运行生成的随机数都是一样的。有的时候是需要这样子的,当然可以直接使用srand来操作,在某些个位置需要固定某些随机数的时候,可以给srand辅以相同的参数,那么他生成的随机数列就是相同的;

    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    void main(int seed)
    {
        int i, num;
    
        srand((unsigned int)time(NULL));
        for(i = 0; i < 10; i++)
        {
            num = rand()%100;
            printf("%d ",num);
        }
        printf("
    ");
        printf("This is a hello world!
    ");
    }
    

    下面的代码可以参考,当设置相同的随机数种子的时候,得到的随机数列是相同的:

    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    void main(int seed)
    {
        int i, num;
    
    //  srand((unsigned int)time(NULL));
        srand(1000);
        for(i = 0; i < 10; i++)
        {
            num = rand()%100;
            printf("%d ",num);
        }
    
        printf("
    ");
    
        srand(2000);
        for(i = 0; i < 10; i++)
        {
            num = rand()%100;
            printf("%d ",num);
        }
    
        printf("
    ");
        srand(1000);
        for(i = 0; i < 10; i++)
        {
            num = rand()%100;
            printf("%d ",num);
        }
        printf("
    ");
        printf("This is a hello world!
    ");
    }
    

    当然,要保证每次运行时生成的随机数都不一样,最好还是调用time函数来根据执行时候的时间初始化随机数种子,这样的话,能够很好地保证每次执行都能生成不同的随机数。


    2015-11-06 调试记录 张朋艺

  • 相关阅读:
    【BZOJ】【2661】【Beijing WC2012】连连看
    【BZOJ】【2424】【HAOI2010】订货
    【BZOJ】【1061】【NOI2008】志愿者招募
    【POJ】【3680】Intervals
    网络流建模
    【BZOJ】【1221】【HNOI2001】软件开发
    【BZOJ】【1877】【SDOI2009】晨跑
    bzoj2054: 疯狂的馒头(并查集)
    浴谷金秋线上集训营 T11738 伪神(树链剖分)
    51nod1967 路径定向(欧拉回路+结论题)
  • 原文地址:https://www.cnblogs.com/huty/p/8518954.html
Copyright © 2011-2022 走看看