点名器——随机数的应用
点名器——随机数的应用
- 1、点名器
- 2、随机思想在C++上的表达
- 3、点名器的制作
- 1、分析
- 2、组合与添加
- 3、修改与简化
- 4、功能的完善
1、点名器
点名器在生活中是一种普遍常见的随机数的应用。点名器包含着一种数学领域中一种很重要的思想——随机思想。随机在数学领域上有一个很高的地位。
2、随机思想在C++上的表达
C++具有随机函数rand(),而在指令编辑器中,一般都会设置“随机种子”,所以C++还有随机种子srand()。
设置随机种子的格式为srand(time(0));。
rand() 和 srand() 均需添加头文件 #include<cstdlib>,而 time(0) 需要添加头文件 #include<ctime>。
通常,表示由x到y的随机数,用 x+rand()%(y-x+1) 表示(注意:x小于y)。
//例子
#include<cstdlib>
#include<ctime>
using namespace std;
int main()
{int x,y,a;srand(time(0));cin >> x >> y;a = x + rand() % (y - x + 1); //a赋值为x到y的随机整数cout << a;return 0;
}
3、点名器的制作
1、分析
首先,群体的人数并不是一成不变的。因此,我们要让点名器“适应”人数。由此,我们可以定义一个变量num。
int num;
其次,我们还需要一个变量,保存生成的随机数。因此可以定义一个变量random。
int random;
此时,我们要让点名器生成一个1到num的整数。通过上面的说明,可知应先设置随机种子,再进行随机数的生成。
srand(time(0));
random = 1 + rand() % num;
2、组合与添加
接下来,就是将我们上部分的代码段组合起来了。
int num, random;
srand(time(0));
random = 1 + rand() % num;
虽然代码段组合了,但是此时我们无法输入人数,也无法知道random的值。所以此时,我们要使用格式化函数输入人数num、输出random。
格式化输入函数是scanf(),格式化输出是printf(),使用时需添加头文件 #include<cstdio>。
int num, random;
srand(time(0));
scanf("%d",&num);
random = 1 + rand() % num;
printf("%d\n",random);
3、修改与简化
最后,我们就要将整个代码完整地打出来了。我们需要将头文件、命名空间、主函数添加上去。
#include<cstdlib>
#include<ctime>
#include<cstdio>
using namespace std;
int main()
{int num,random;srand(time(0));scanf("%d",&num);random = 1 + rand() % num ;printf("%d\n",random);return 0;
}
仔细观察,发现random其实是一个多余的变量。我们只需将随机值转移到格式化输出即可。
#include<cstdlib>
#include<ctime>
#include<cstdio>
using namespace std;
int main()
{int num;srand(time(0));scanf("%d",&num);printf("%d\n",1 + rand() % num);return 0;
}
运行一下,点名器就可以使用了。
4、功能的完善
我们也可以对程序添加一些语言,使输入和输出不那么枯燥。
#include<cstdlib>
#include<ctime>
#include<cstdio>
using namespace std;
int main()
{int num;srand(time(0));printf("请输入人数:"); scanf("%d",&num);printf("被点到的是%d号。\n",1 + rand() % num);return 0;
}
当然,点名器一般都不仅仅使用一次。这时,我们可以使用一个while循环,造成无限循环的结构,并利用 if 判断语句以0表示结束。
while循环与 if 判断的格式是:
while(循环条件)
{循环语句(组);
}
if(成立条件)
{语句(组);
}
结束循环节时,要使用 break; 函数。
如此,我们可以得到:
#include<cstdlib>
#include<ctime>
#include<cstdio>
using namespace std;
int main()
{int num;srand(time(0));while(true){printf("请输入人数:"); scanf("%d",&num);if(num==0) //此处==是关系运算符,不是赋值号{break;}printf("被点到的是%d号。\n",1 + rand() % num);}return 0;
}
当然,错误是不可避免的。我们还可以添加一个容错机制,提醒用户输入无效,并让用户重新输入。
#include<cstdlib>
#include<ctime>
#include<cstdio>
using namespace std;
int main()
{int num;srand(time(0));while(true){printf("请输入人数:"); scanf("%d",&num);while(num<0) //注意:0是用于退出的,是有意义的,容错机制中不能包含0{printf("您输入的人数无效,请重新输入:"); scanf("%d",&num);}if(num==0){break;}printf("被点到的是%d号。\n",1 + rand() % num);}return 0;
}
这样,点名器也就制作完成了。
点名器——随机数的应用相关推荐
- elementui vue的html随机点名器软件网页版源码1.1
**在之前基础上新增了点击开始点名之后,判断姓名池的数量的判断,如果数量为零给出提示. 按钮的双击, 如果是在姓名池,在会进入上面的被点名状态, 如果是在上面卡片中的点名状态,则会重新回到姓名池 ** ...
- 基于element-ui,vue的html随机点名器
点击开始点名,进入循环,点击停止,会禁用按钮 在500毫秒之后,将点到的人名字放到上面,在下面表体会消失这个人, 点名之后可以刷新.暂时还没有做将点到的人还回来.(1.0) 用到的资料,element ...
- Java GUI简单点名器
2019独角兽企业重金招聘Python工程师标准>>> 1.业务代码 package cn.polin.spider;import java.awt.BorderLayout; im ...
- 【前端学习项目】web前端#001网页点名器(html+css+js实现用户交互)
目录 首先先把学生一个一个的放到数组中 其次遍历这个数组 然后按钮事件触发 最后附上完整代码: 最后的实现 这个故事是这样开始的,新学期伊始,我们java老师为了检测学生的java基础水平,留下了这么 ...
- java--案例:[Random]随机100-200的数、班级点名器、控制台输入三个数,输出最大值,或最小值?
随机100-200的数 思路:先随机到100的数,然后再加100 public static void main(String[] args) { Random ran = new R ...
- 一起用Python做个上课点名器,好玩又实用!
前言 前段时间,用PyQt5写了几篇文章,关于Python自制一款炫酷音乐播放器.自定义动态壁纸.车牌自动识别系统.今天就继续给大家分享一个读者粉丝投稿的,关于上课点名的实战案例,一起来看看是如何实现 ...
- Java 随机点名器
随机点名器,即在全班同学中随机的打印出一名同学名字. 要做的随机点名器,它具备以下3个内容: 存储所有同学姓名 总览全班同学姓名 随机点名其中一人,打印到控制台 案例需求分析 在全班同学中 ...
- java 点名器_java随机点名器 课程设计.docx
java随机点名器 课程设计 目 录1 课程设计内容11.1 课程设计目的11.2 课程设计要求11.3 课程设计背景12 概要设计22.1程序模块结构图22.2 使用外部包的确定22.3 主界面模块 ...
- js实现复仇者联盟点名器
随机点名器训练 题目:为了活跃班级气氛,在班级上张老师想通过一个随机点名器来随机抽取学 员回答问题,故按排你来使用 HTML+JavaScript 来实现如下图所示的随机点 名器,第一张图是随机点名器 ...
最新文章
- html5 canvas雨点打到窗玻璃动画
- Python-OpenCV 处理视频(二): 视频处理
- 使用django的权限管理系统permission
- JAVA系统和DOMINO通过LDAP集成方
- C# 数据类型及相互转换及常用基础
- 数据分析工具篇——HQL原理及函数逻辑
- ssm整合:这是第三次自己整合了。特写此文章当做笔记
- hdu 5083 Instruction (稍比较复杂的模拟题)
- Faster R-CNN算法详细流程
- NS3使用Eclipse配置
- 【高手推荐:主题下载】
- 今天看到居民负债率超过90%
- Python实现cosx函数(泰勒公式)
- POSCMS 短信设置
- 手机拍照实用技巧,实用的拍照方法和功能
- ChatGPT搞砸了~,如何使用VBA导出Word文档中的图片
- 【一文讲通】样本不均衡问题解决--上
- 新手如何选择 视频配音软件(文字转语音)
- 华为云服务器使用之搭建极简服务器
- Hexo(sakura)文章增添字数统计和阅读时长功能