rand是函数 如同printf函数 要调用它的话,我们只需把它的头文件写上即可.
rand的头文件是 stdlib.h
randomize(); 这是它的格式.如没有这个函数,所产生的是伪随机数,只有第一次是随
机,以后都生成这个数.加了这个所产生的是真随机数(也就是每一次都不一样)
-----------------------------------------------------------
#include
#include
int main(void)
{
int i;
for(i=0; i<10; ++i)
printf("%d\n", rand()%100);
scanf("%d", &i);
}
在相同的操作平台下,计算方法是一定的.再加上随机种子不变,所以得出的结果不变.如果把这段代码用在别的计算机中,这个数和你的计算机又会不一样.
----------------------------------------------------------
#include
#include
#include
#define randomize() srand((unsigned)time(NULL))
int main(void)
{
int i;
randomize();
for(i=0; i<10; ++i)
printf("%d\n", rand()%100);
scanf("%d", &i);
}
加上randomize()时,所得到的随机数还是称为随机数,看上去好像很随机,实际上还是伪随机数.为什么会这样呢?因为随机种子这时是来自系统时钟,换句话说:来自计算机主板上的定时器/计数器在内存中的计数值.这个值是不断变化的.因为定时器/计数器计算系统的当前时间,每来一个时钟脉冲,这个值会加1的.接着这个值会根据计算机中一定的算法来得出看上去比较随机的数.
-----------------------------------------------------------
如果要得出一个看上去比较随机的数.可以:
rand() 和 srand((unsigned)time(NULL) 配合使用
一个通用的公式是:
要取得[a,b)之间的随机整数,使用(rand() % (b-a))+ a (结果值将含a不含b)。
在a为0的情况下,简写为rand() % b。
用rand() / double(RAND_MAX)可以取得0~1之间的浮点数(注意,不同于整型时候的公式,是除以,不是求模)这不是伪随机浮点数最好的实现方法,不过可以将就着用用…
阅读(1892) | 评论(0) | 转发(1) |