rand函数

来源:互联网 发布:量化模型java 编辑:程序博客网 时间:2024/05/16 16:16

最近用遗传算法去优化svm的参数,可每次运行结果都是一样,后来仔细排查才发现是rand函数在作祟。做个笔记,免得日后忘记:

rand函数是产生一个伪随机值,其值的范围在0~RAND_MAX内。起初我以为每次调用rand函数,都会产生一样的值,其实不然。等我醒悟过后才发现,这个问题多么幼稚,如果每次调用都产生一个一样的值,那么随机性有怎么解释呢,该函数也没有作用了。呵呵,我的理解是这样的,如果我在一个程序中调用了该函数rand,那么每次重新运行该程序,它产生的随机值是一样的,这就是伪随机的原因。因而常常将rand函数与srand结合使用,在程序第一次调用rand函数之前,先调用srand函数,为其置一个种子。通常的做法是srand((unsigned int)time(NULL) )。

原创粉丝点击