码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-11-06 14:53:36      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:

【编程开发】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("\n");
    printf("This is a hello world!\n");
}

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

#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("\n");

    srand(2000);
    for(i = 0; i < 10; i++)
    {
        num = rand()%100;
        printf("%d ",num);
    }

    printf("\n");
    srand(1000);
    for(i = 0; i < 10; i++)
    {
        num = rand()%100;
        printf("%d ",num);
    }
    printf("\n");
    printf("This is a hello world!\n");
}

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


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

版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/lg1259156776/。

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

标签:

原文地址:http://blog.csdn.net/lg1259156776/article/details/49682231

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!