您的位置:首页 > 编程语言 > C语言/C++

C语言产生随机数

2017-02-04 00:31 232 查看

一、简介

1. 随机数:数学上产生的都是伪随机数,真正的随机数是使用物理方法产生的。

2. 随机数种子:随机数的产生是由算术规则产生的,srand(seed)的随机数种子(seed)不同,
  rand()的随机数值就不同,如果每次的seed一样,则rand()产生的随机数也将一样。因此
  要产生随机数,seed也必须是随机的值。
  

3. srand()产生随机数种子seed
原型:void srand(unsigned int seed);
为了使seed是随机的,通常用time(NULL)的值来作为seed.
如:srand(unsigned int(time(NULL)));
产生1~10之间的随机整数

4. time()制造随机数种子
原型:time_t time(time_t timer);
返回值:返回1970.1.1 00:00:00到当前时间的秒数。

5. rand()产生随机数
原型:int rand(void);
返回值:返回0~RAND_MAX的随机数,RAND_MAX定义在stdlib.h中,其值为:2147483647
rand()函数的执行过程:

如果之前调用过srand(seed),rand()会以srand(seed)产生的随机数种子来产生随机数
如果没有调用srand(seed),rand()会自动调用 srand(1)来产生随机数
如果调用srand(seed)产生的随机数种子是一样的,rand()产生的随机数也相同

二、实例

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define random(x) (rand()%(x))

int main(void)
{
int i;
int value;

/*注意要将srand()放在循环为,否则因执行速度太快
将导致产生的随机数一样*/
srand(time(NULL));
for(i=0;i < 10;i++)
{
value=random(10);
printf("%d\t", value);
}
printf("\n");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 随机数