- 论坛徽章:
- 0
|
本帖最后由 wohenry84 于 2010-10-10 14:52 编辑
今天在win下面编写了个随机程序,代码大概是这样的:
n = 0 ;
while(n < 100)
{
srand((unsigned int)time(NULL));
int randomnum = rand()%30 ;
randomnum += 20 ;
n++ ;
printf("%d\t", randomnum);
}
结果发现就根本没有随机出来,我开始的理解是:可能时间太短了,时间变化粒度太大导致只随机出两个重复多次的数据。 但是,我把程序改为
n = 0 ;
srand((unsigned int)time(NULL));
while(n < 100)
{
int randomnum = rand()%30 ;
randomnum += 20 ;
n++ ;
printf("%d\t", randomnum);
}
为什么就能很好的随机出来结果呢?我一直想不通这到底是什么一个原理了。(我理解就是,照说下面的程序更没有理由会产生随机数据出来)
希望大哥大姐们帮忙解答下这个随机函数到底是怎么个机制。小弟先谢谢了。 |
|