在VC中设计到随机数有两个函数
成都创新互联公司专注于纳雍企业网站建设,成都响应式网站建设公司,购物商城网站建设。纳雍网站建设公司,为纳雍等地区提供建站服务。全流程按需策划,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务
srand()
and
rand()
srand()
的作用是是一个种子,提供每次获得随机数的基数而已,rand()根据种子而产生随机数
注意
1:srand()
里的值必须是动态变化的,否则得到的随机数就是一个固定数
2:其实可以不用写srand()
,只用rand()就可以了,省事,简单,例子如下
如果我们想得到一个
0-60的随机数那么可以写成
int
i;
i=rand()%60;
就可以了。
当然最好有个统一的标注如下:
int
i;
srand((unsigned)time(
NULL
));
i=rand()%60;
这样就OK了。
rand函数也是调用dos的时钟,进行的伪随机函数.
你也可以使用时钟来模拟随机函数.
可以试用gettime这个函数:
long int MyRand(int x)
{
struct time t1,t2,t3;
gettime(t1);
int y1=t1.ti_hund;//取1/100s作为基数
gettime(t2);
int y2=t2.ti_hund;//取1/100s作为基数
gettime(t3);
int y3=t3.ti_hund;//取1/100s作为基数
return y1*y2*y3;//产生的随机数0~99*99*99
}
1、首先打开Visual stdio 2019,依次点击文件,新建,项目新建以一个空白的项目:
2、新建新项目以后,右键点击左边的源文件,选择添加,点击添加项:
3、选择cpp,并将下方的扩展名改为.c,然后点击确定:
4、接下来就可以用编译器编译,使用rand()函数产生C语言的随机数,需要加入stdlib.h和time.h在表头,rand()函数需要给srand()函数提供一个参数,不然系统会给定一个默认的参数,如果参数为一任意的常量的话,得到的也是伪随机数:
4、按ctrl+F5就可以运行程序了,在弹出的窗口中就会看到得到的所有随机数了:
c语言中产生随机数的相关函数主要包括srand和rand函数,两者配合生成随机数据,测试代码如下,
#includestdio.h
#include stdlib.h
#include time.h
void main()
{
int i=0,j=0;
int p[5][5]={0};
srand(time(NULL));
for(i=0;i5;i++)
for(j=0;j5;j++)
p[i][j]=rand()%100+1;//产生1-100的随机数存入数组p中
printf("二维数组p为:\n");
for(i=0;i5;i++)
{
for(j=0;j5;j++)
printf("%d\t",p[i][j]);
printf("\n");
}
}
一般srand和rand配合使用产生伪随机数序列。rand函数在产生随机数前,需要系统提供的生成伪随机数序列的种子,rand根据这个种子的值产生一系列随机数。如果系统提供的种子没有变化,每次调用rand函数生成的伪随机数序列都是一样的。srand(unsigned seed)通过参数seed改变系统提供的种子值,从而可以使得每次调用rand函数生成的伪随机数序列不同,从而实现真正意义上的“随机”。通常可以利用系统时间来改变系统的种子值,即srand(time(NULL)),可以为rand函数提供不同的种子值,进而产生不同的随机数序列。
你好!
完整的代码,红圈处就是从上面100个数字中抽取到的数字:
#include stdio.h
#includestdlib.h //生成随机数用
#includetime.h //利用时间生成种子
#includemath.h
int main()
{
int i;
int a[100];
srand( time(NULL) ); //生成种子
for(i=0;i100;i++)
{
a[i]=rand()%1000+1000; //生成一个小于1000的随机数
//然后加1000,变成 1000 - 2000之间的数
printf("%d ",a[i]); //打印
}
i=rand()%100; //随机抽取其中的一个数
printf("\n抽取到的是:%d\n",a[i]);//打印
return 0;
}