C语言产生随机数

一、简介

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()函数的执行过程:

  1. 如果之前调用过srand(seed),rand()会以srand(seed)产生的随机数种子来产生随机数
  2. 如果没有调用srand(seed),rand()会自动调用 srand(1)来产生随机数
  3. 如果调用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");
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值