1.rand()介绍:
- rand()是C语言系统函数,用来生成随机数,使用前要包含头文件"stdlib.h"(<stdlib.h>)。
- rand()是一个无参函数。
2.rand()的使用:
- 单纯调用rand(),会随机生成0~很大一个整数,之间的任意整数。
#include <stdio.h>
#include <stdlib.h>
#define N 10
int main(void){
int a[N];
for(int i=0;i<N;++i)
a[i]=rand();
for(int i=0;i<N;++i)
if((i+1)%2==0)
printf("\ta[%d]=%d\n",i,a[i]);
else
printf("\ta[%d]=%d ",i,a[i]);
system("pause");
}
a[0]=41 a[1]=18467
a[2]=6334 a[3]=26500
a[4]=19169 a[5]=15724
a[6]=11478 a[7]=29358
a[8]=26962 a[9]=24464
请按任意键继续. . .
-
使用rand()表达式生成指定范围内的随机数:
rand()%n;表示生成0~n-1的随机整数。
例如:rand()%10;表示生成0~9的随机整数。 -
实现生成10~20的随机整数:
#include <stdio.h>
#include <stdlib.h>
#define N 10
int main(void){
int a[N];
for(int i=0;i<N;++i)
a[i]=10+rand()%11;//利用rand()表达式实现10~20随机整数的生成
for(int i=0;i<N;++i)
if((i+1)%2==0)
printf("\ta[%d]=%d\n",i,a[i]);
else
printf("\ta[%d]=%d ",i,a[i]);
system("pause");
}
a[0]=18 a[1]=19
a[2]=19 a[3]=11
a[4]=17 a[5]=15
a[6]=15 a[7]=20
a[8]=11 a[9]=10
请按任意键继续. . .
生成n~m的随机整数的表达式:n+rand()%(m-n+1);(n<m)。
#include <stdio.h>
#include <stdlib.h>
#define N 10
int a[N];
void gen_rand(int n,int m){
if(n>m){
n=n+m;
m=n-m;
n=n-m;
}
for(int i=0;i<N;++i)
a[i]=n+rand()%(m-n+1);
for(int i=0;i<N;++i)
if((i+1)%2==0)
printf("\ta[%d]=%d\n",i,a[i]);
else
printf("\ta[%d]=%d ",i,a[i]);
}
int main(void){
int n,m;
printf("input n,m:");
scanf("%d,%d",&n,&m);
gen_rand(n,m);
system("pause");
}
input n,m:34,43
a[0]=35 a[1]=41
a[2]=38 a[3]=34
a[4]=43 a[5]=38
a[6]=42 a[7]=42
a[8]=36 a[9]=38
请按任意键继续…
3.一般使用rand()生成的是伪随机数
- rand()实在某个初值(是固定的值)的基础上计算随机数的,所以称为伪随机数。
- 改变初值的表达式:srand(time(NULL));time()要包含头文"time.h"(<time.h>)。
- 调用time()得到的是当前系统距离1970年1月1日00:00:00的秒数。