随机数函数是什么?
利用函数,生成一个特定区间内的随机大小的整数。
随机数的日常应用:
1、给题目出数据
2、打表蒙答案
3、小游戏
=============================================================
函数介绍:
因为随机数的本质是函数的应用,先介绍要用的几个函数
1、rand()//生成函数//需要<cstdlib>头文件
2、srand()//初始化函数
3、time()//获取系统时间函数 //需要 <ctime>头文件
=============================================================
实例代码:
生成一个在[ x ,y ) 区间内的随机整数
样例输入: 100 500
样例输出:一个在100和499之间的随机数。
#include<cstdio>
#include<ctime>//获取时间函数要用到
#include<cstdlib>//rand函数要用
int main()
{
int x,y,k,t;
scanf("%d %d",&x,&y);//区间在[x,y)
t=y-x;
srand(time(0));//初始化
k=rand()%t;//获取随机数
k+=x;// 确认区间
printf("%d",k);
return 0;
}
如果你只需要一个拿来就用的工具,恭喜你,已经获得了!!
==================后面都是废话,不用再往下看了!================
=============================================================
=============================================================
=============================================================
=============================================================
=============================================================
我
是
懒
惰
的
普
通
人
和
勤
奋
又
帅
得
让
人
欲
罢
不
能
的
大
神
之
间
的
分
割
线
=============================================================
实例分析:
1、rand()函数其实是一个伪随机整数序列,每次产生的是0~RAND_MAX(该值与平台有关,至少为32767),之间的随机数,但其产生的随机数时伪随机数,默认随机数种子为0,所以每次重新运行程序,都会产生相同的随机数。测试代码如下:
#include<cstdio>
#include<cstdlib>//rand函数要用
int main()
{
int k;
k=rand();//获取随机数
printf("%d",k);//输出
return 0;
}
2、srand()//初始化函数
为了解决多次生成的时候,数字能够随机变动,需要一个每次都不同的种子,
也就是说:srand()函数参数,如果有一个每次不同的数字,它就能帮助 rand()函数;
srand(请给我一个每次不同的数字放这里)。
为了能够获得一个每次都不同的数字,调用系统时间!
3、time()//获取系统时间函数
时间戳,指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在经过了多少秒。
在C语言中可以通过time()函数获取到当前的秒数,参数为0则函数返回值即为结果,若参数不为0则结果保存在参数中。
代码如下:
#include<cstdio>
#include<ctime>//获取时间函数要用到
int main()
{
int t=time(0);//获取当前时间秒数
printf("%d\n",t);//输出
int h,s,m;
s=t%60;
m=t%3600/60;
h=(t%(24*3600)/3600+8)%24;
printf("%02d:%02d:%02d\r",h,m,s);//换算回时分秒显示
return 0;
}
4、,有了随机函数,又有了种子,那么我们就可以生成真正意义的随机数了!
ps:由于平台的限制,范围在0到2^16之间,也就是rand()返回的值不会大于32767。
4.1 如果要生成一个 1-1000 之间的随机数,只要 rand()%1000 ;
4.2 如果要生成一个 1000-1500 之间的随机数,需要 rand()%500+1000 //在1000的基础上,加上500以内的随机数;
4.3 如果要生成一个超过32767的随机数,需要 x=rand(),然后对 x 进行适当的加法或者乘法运算;
4.4 如果要生成一个带小数的随机数,就是 int 类型和 double 类型之间的转化问题了。