目录

一、引言

二、随机生成数

1、原理

2.关键代码

3.举个栗子


一、引言

很多时候调试程序要手动输入待测值,输入量很少时还好,但是当待测数据要求的输入量很多时,手动输入显然是低效率的,是浪费时间的。所以,可以尝试采用随机生成数的方式来作为输入值,来实现某种意义上的自动化!下面进行随机生成数的详解

二、随机生成数

1、原理

使用C语言stdlib.h头文件中的srand函数和rand函数,配合产生随机生成数序列。

rand函数在产生随机数前,需要系统提供的生成伪随机数序列的种子,rand根据这个种子的值从而产生一系列的随机数。如果系统提供的种子不变,那么每次调用rand函数生成的伪随机数序列都是是相同的。所以我们如何寻找一个变化的“种子”呢?

srand(unsigned int seed)函数就是充当随机数发生器的角色,通过参数无符号整参数seed改变系统提供的种子值,即“播种”。从而可以使得每次调用rand函数生成的伪随机数序列不同,从而实现真正意义上的“随机数”。

我们一般可以利用系统时间来改变系统的种子值,srand((unsigned int)time(NULL)),可以为rand函数提供不同的种子值,进而产生不同的随机数序列。

time.h头文件中的time_t time(time_t * t)函数,作用是返回1970年1月1日00:00:00到当前用户电脑所运行的时间之间秒数,如果t是空指针,直接返回当前时间;如果t不是空指针,返回当前时间的同时,将返回值赋予指针t所指向的内存空间。所以它是不断变化的,可以很好地用来作为srand函数的种子。

2.关键代码

srand((unsigned int)time(NULL));
int random=rand();

3.举个栗子

随机生成十个一百以内的整数并打印输出

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(){
	int i,random[10];
	srand((unsigned int)time(NULL));//改变系统种子值,即"播种" 
	for(i=0;i<10;i++){
		random[i]=rand()%100;//对100进行模运算从而生成100以内的随机生成数 
		printf("%d ",random[i]);
	}
	return 0;
} 

更多推荐

随机生成数——C语言