重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
函数名: rand
站在用户的角度思考问题,与客户深入沟通,找到凉州网站设计与凉州网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:做网站、成都网站建设、企业官网、英文网站、手机端网站、网站推广、申请域名、网页空间、企业邮箱。业务覆盖凉州地区。
功 能: 随机数发生器
用 法: void rand(void);
程序例:
#include stdlib.h
#include stdio.h
int main(void)
{
int i;
printf("Ten random numbers from 0 to 99\n\n");
for(i=0; i10; i++)
printf("%d\n", rand() % 100);
return 0;
}
这样产生的随机数为伪随机数,如果要产生随机数,可以在前面加一个随机种子,srand(time(0)); time(0)返回的是系统的时间(从1970.1.1午夜算起)的总秒数,单位:秒
#include stdlib.h
#include stdio.h
#include time.h
int main(void)
{
srand(time(0));
int i;
printf("Ten random numbers from 0 to 99\n\n");
for(i=0; i10; i++)
printf("%d\n", rand() % 100);这样就产生了0到99的随机数(随机数对100取余的结果)
return 0;
}
可以自己试试,没加随机种子时候,rand()%100每次产生的数都是一样的,而加了srand(time(0))效果就不同了。
通过敲代码实验,并且参考以下网址
随机函数就是产生数的函数,c语言里有rand(),srand()等函数。
用法
#include
#include
#include
void main( void )
{
int i,k;
srand( (unsigned)time( NULL ) ); //用系统时间当种子,对随机函数进行初始化
for( i = 0; i 10;i++ )
{
k=rand()%100; //产生各个随机数
printf( " k=%d/n", k );
}
}
详述
rand() srand() 头文件为#include
标准C库中函数rand()可以生成0~RAND_MAX之间的一个随机数,其中RAND_MAX 是stdlib.h 中定义的一个整数,它与系统有关。
rand()函数没有输入参数,直接通过表达式rand()来引用,rand()%n是产生的随机数对n取余,起到了取0到n-1之间随机数的作用;
例如可以用下面的语句来打印两个随机数: printf("Random numbers are: %i %i/n",rand(),rand());
因为rand()函数是按指定的顺序来产生整数,而未指定运行的种子,所以rand()每次使用的都是同一个种子来产生随机数序列,因此每次执行上面的语句都打印相同的两个值,所以说C语言的随机并不是正真意义上的随机。
为了时程序在每次执行时都能生成一个新序列的随机值,我们通常通过为随机数生成器提供一粒新的随机种子。函数 srand()(来自stdlib.h)可以为随机数生成器播散种子。只要种子不同rand()函数就会产生不同的随机数序列。srand()称为随机数生成器的初始化器。
srand( (unsigned)time( NULL ) ); 用系统时间当种子,对随机函数进行初始化,每次的系统时间不同,所以种子也就不同,产生的随机数序列也就不同。
任何程序都会用到stdio.h,所以这个跟随机数函数没多大关系,stdlib.h包含的是随机数函数rand() 和随机数函数 srand(seed) 这两个通常配套使用,srand(seed)意思是置一个随机数种子,然后调用rand()函数得到一个-90~32767之间的整数,置种子的时候我们要求种子是不一样的,否则每次用rand()函数都会得到相同的结果。由于时间每一秒都会发生变化,因此我们选择用时间作为随机数种子,去实践的函数time()就包含在time.h头文件里,所以我们要用到time.h这个头文件。
给个例子
我要随即输出一个整数
#include
#include
#include
void main()
{
int i;
srand(time(NULL));//置随机数种子,没有这句也能运行,但是多次运行这个程序的时候,随后用rand()得到的数字会相同
i=rand();用rand()函数获得随机数,然后赋给不变量i
printf("%d",i);
}
srand()函数是C语言中产生随机数的一个函数。
函数原型: void srand(unsigned seed)
功 能: 产生随机数的起始发生数据,和rand函数配合使用
头 文 件: stdlib.h time.h
举例如下:
#include stdio.h
#include stdlib.h
#include time.h
int main(void)
{
int i;
time_t t;
srand((unsigned) time(t));
printf("Ten random numbers from 0 to 99\n\n");
for (i=0; i10; i++)
printf("%d\n", rand()%100);
return 0;
}
运行程序,会发现每次产生的随机数都不一样。这是因为这里采用了时间作为种子,而时间在每时每刻都不相同,所以就产生了"随机"的随机数了。所以,要想产生不同的随机数,在使用rand之前需要先调用srand。