原创 srand函数

2009-1-12 15:54 2911 6 6 分类: 软件与OS

                               随机数的生成


<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 


time_t  t;
srand((unsigned) time(&t));

srand
函数是随机数发生器的初始化函数,原型:
void srand(unsigned seed);
它需要提供一个种子,如:
srand(1);
直接使用1来初始化种子。不过常常使用系统时间来初始化,即使用
time
函数来获得系统时间,它的返回值为从 00:00:00 GMT, January 1, 1970
到现在所持续的秒数,然后将time_t型数据转化为(unsigned)型在传给srand函数,即:
srand((unsigned) time(&t));

还有一个经常用法,不需要定义time_tt变量,即:
srand((unsigned) time(NULL));
直接传入一个空指针,因为你的程序中往往并不需要经过参数获得的t数据。


 


重新设置一个随机种子。。。
如果没有srand((unsigned)time(NULL));运行以下程序,每次输出结果会都是一样的。。。。。

void test_rand(void)
{
    unsigned long n;


srand((unsigned)time(NULL));


for(int i = 0; i < 100; i++)


{


n = rand();


printf("%10d\n", n);


}


}

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条