当前位置:首页 > 趣味小程序 > 正文内容

C++产生随机数

亿万年的星光5年前 (2021-01-28)趣味小程序2279
0.前言

想做一个掷骰子的小游戏,需要用到随机数函数,于是查了一些资料,整理了一下。

1.随机数函数

C++产生随机数需要用到rand()和srand()函数。期中,

(1)rand()叫随机数发生器,所在头文件是<cstdlib>,可以产生随机数,例如下面这个程序就是产生10以内的随机数。

#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
   for (int i = 0; i < 10; i++)
   {
       cout << rand()%10<< " ";
   }
   return 0;
}

但是你运行这个程序后,你会发现它每次运行的结果是相同的,这是rand()函数的缺点,rand()产生的是伪随机数字,每次执行时是相同的;若要不同,用函数srand()初始化它。

(2)srand()名为初始化随机数发生器,srand()用来设置rand()产生随机数时的随机数种子。参数seed必须是个整数,如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。

(3)可以利用系统时钟产生不同的随机数种子。需要引入<ctime>头文件。

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
   srand((int)time(NULL));
   for (int i = 0; i < 10; i++)
   {
       cout << rand()%10<< " ";
   }
   return 0;
}
2.产生某个范围内的随机数

要产生一定范围内的随机数,可以使用下面的公式:

要取得[0,n)  就是rand()%n     表示 从0到n-1的数
要取得[a,b)的随机整数,使用(rand() % (b-a))+ a; 
要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a; 
要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1; 

你要是觉得上面的公式麻烦,可以用下面的通用的公式:

a + rand() % n;其中的a是起始值,n是整数的范围。 

下面这个程序就是产生3到10范围内的随机数

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
   srand((int)time(NULL));
   cout << (3+rand()%9)<< " ";
   return 0;
}


扫描二维码推送至手机访问。

版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

分享给朋友:

相关文章

C++小游戏—简单飞机大战(1)

C++小游戏—简单飞机大战(1)

前面文章简单实现了弹球操作,这篇文章我们介绍一下如何实现简单的飞机大战操作。这篇文章我们要实现的效果如下:第一步:整体思路在某个点画出飞机的形状获取用户按下哪个按键根据按键移动飞机的位置按空格键发射子...

【C++图形化编程】flappy bird(3)—碰撞检测(大功告成)

0.前言    前面几篇文章中,我们简单介绍了基础框架和游戏逻辑,这一篇文章我们接着上一篇,继续完善游戏,主要是移动与碰撞逻辑的检测...

【C++图形化编程】EasyX函数~图像操作相关函数

【C++图形化编程】EasyX函数~图像操作相关函数

图像处理相关函数函数或数据类型描述IMAGE保存图像的对象loadimage读取图片文件saveimage保存绘图内容至图片文件getimage从当前绘图设备种获取图像putimage在当前绘图设备上...

C++小游戏——flappy bird简单实现

C++小游戏——flappy bird简单实现

上一篇小游戏中,我们简单实现了打砖块小游戏。这一篇中,我们根据前面的框架,简单实现flappy bird小游戏。1.游戏框架   2.实现下落的小鸟#include &l...

C++实现弹窗效果

C++实现弹窗效果

1.格式C++实现弹窗效果需要用到messagebox,这个我在C#中用过,C++也有类似用法。messagebox函数,需要引入<windows.h>头文件2.简单用法#include&...

【C++图形化编程】飞机大战2——运动与碰撞检测

上一篇中,简单实现了飞机大战的基本框架,这篇文章继续完善,使其可以进行游戏。#include <graphics.h> #include <conio.h>...