当前位置: 首页 > news >正文

C++蓝桥杯基础篇(九)

片头

嗨!小伙伴们,大家好~ 今天我们将学习蓝桥杯基础篇(十),学习函数相关知识,准备好了吗?咱们开始咯!


一、函数基础

一个典型的函数定义包括以下部分:返回类型、函数名字、由0个或多个形参组成的列表以及函数体。

1.1  编写函数

我们来编写一个求阶乘的程序,程序如下所示:

int fact(int val) {int ret = 1;int i = 1;while (i <= val) {ret *= i;i++;}return ret;
}

 函数名字是fact,它作用于一个整型参数,返回一个整型值,return语句负责结束fact并返回ret的值。

1.2  调用函数
int main() {int t = fact(5);cout <<"5的阶乘为: " << t << endl;return 0;
}

函数的调用完成两项工作:一是用实参初始化函数对应的形参,二是将控制权转移给被调用函数。此时,主调函数的执行被暂时中断,被调函数开始执行。

1.3  形参和实参

实参是形参的初始值。第一个实参初始化第一个形参,第二个实参初始化第二个形参,以此类推。形参和实参的类型和个数必须匹配。

	fact("hello");		//错误: 实参类型不正确fact();				//错误: 实参数量不足fact(42, 10, 0);	//错误: 实参数量过多fact(3.14);			//正确: 该实参能转换成int类型,等价于fact(3);

形参也可以设置默认值,但所有默认值必须是最后几个。当传入的实参个数少于形参个数时,最后没有被传入值的形参会使用默认值。

1.4  函数的形参列表

函数的形参列表可以为空,但是不能省略。

void f1(){/*...*/ }			//隐式地定义空形参列表
void f2(void) {/*...*/ }	//显示地定义空形参列表

形参列表中的形参通常用逗号隔开,其中每个形参都是含有一个声明符的声明。即使2个形参的类型一样,也必须把2个类型都写出来:

int f3(int v1,v2){/*...*/ }			//错误
int f4(int v1,int v2){/*...*/ }		//正确
1.5  函数返回类型

大多数类型都能用作函数的返回类型,比如:int、double、char、bool...。一种特殊的返回类型是void,它表示函数不返回任何值。函数的返回类型不能是数组类型或函数类型,但可以是指向数组或者函数的指针。

1.6  局部变量、全局变量与静态变量

局部变量只可以在函数内部使用,全局变量可以在所有函数内使用。当局部变量与全局变量重名时,会优先使用局部变量。


二、参数传递
2.1  传值参数

当初始化一个非引用类型的变量时,初始值被拷贝给变量。此时,对变量的改变不会影响初始值。

2.2  传引用参数

 当函数的形参为引用类型时,对形参的修改会影响实参的值。使用引用的作用:避免拷贝、让函数返回额外的信息。

int max(int& x, int& y) {x = 10, y = 20;if (x > y) return x;return y;
}int main() {int a, b;cout << "请输入a,b的值:";cin >> a >> b;cout << "max(a, b)函数的返回值为: " << max(a, b) << endl;cout << "新的a,b的值为: " << a << " " << b << endl;return 0;
}

咱们的交换函数swap也可以用带有引用&的参数来实现:

//交换函数
void swap(int& a, int& b) {int temp = a;a = b;b = temp;
}
 2.3  数组形参

在函数中对数组中的值的修改,会影响函数外面的数组

一维数组形参的写法

//尽管形式不同,但这3个printf函数是等价的
void print(int* a){/*...*/ }
void print(int a[]){/*...*/}
void print(int a[10]){/*...*/ }

举一个例子看看吧~

void print(int a[]) {for (int i = 0; i < 10; i++) {cout << a[i] << endl;}
}int main() {int a[10];for (int i = 0; i < 10; i++) {a[i] = i;}print(a);return 0;
}

多维数组形参的写法:

//多维数组中,除了第一维之外,其余维度的大小必须指定
void print(int (*a)[10]){/*...*/ }
void print(int a[][10]){/*...*/ }

我们同样,举一个例子~

void output(int n, int m, int a[3][3]) {for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {cout << a[i][j] << " ";}cout << endl;}
}int main() {//定义一个二维数组int a[3][3] = {{1,2,3},{4,5,6},{7,8,9},};//输出这个二维数组output(3, 3, a);return 0;
}

注意:当二维数组作为形参的时候,行可以省略,但是列不能省略。当我们在函数中对二位数组中的值进行修改时,相应的二维数组也会发生变化:

void output(int n, int m, int a[][3]) {for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {cout << a[i][j] << " ";a[i][j] = 1;}cout << endl;}
}int main() {int a[3][3] = {{1,2,3},{4,5,6},{7,8,9},};output(3, 3, a);puts("");for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {cout << a[i][j] << " ";}cout << endl;}return 0;
}

结果如下:

 三、返回类型和return语句

return语句终止当前正在执行的函数并将控制权返回到调用该函数的地方。return 语句有2种形式:

return;
return expression;
3.1  无返回值函数

没有返回值的return语句只能用在返回类型是void的函数中。返回void的函数不要求非得有return语句,因为在这类函数的最后一句后面会隐式地执行return。

通常情况下,返回值为void函数如果想在它的中间位置提前退出,可以使用return语句。return的这种用法有点类似于我们用break语句退出循环。

void swap(int& v1, int& v2) {//如果2个值相等,则不需要交换,直接退出if (v1 == v2)return;//程序执行到了这里,说明还需要继续完成某些功能int temp = v2;v2 = v1;v1 = temp;//此处无需显示的return语句
}
3.2  有返回值的函数

只要函数的返回类型不是void,则该函数内的每条return语句必须返回一个值。return语句返回值的类型必须与函数的返回类型相同,或者能隐式地转换函数的返回类型。

int max(int x, int y) {if (x > y) return x;return y;
}int main() {int x, y;cin >> x >> y;cout << max(x, y) << endl;return 0;
}
四、函数递归

在一个函数内部,也可以调用函数本身

//用递归实现n!
int fac(int n) {if (n <= 1) return 1;return n * fac(n - 1);
}int main() {int n;cin >> n;cout << fac(n) << endl;return 0;
}

咱们画个图,好理解一些~

五、练习题
第1题  n的阶乘

代码如下:

//n的阶乘
//输入一个整数n,请你编写一个函数,int fact(int n),计算并输出n的阶乘。
//输入共一行,包含一个整数n。
//输出共一行,包含一个整数表示n的阶乘的值。
//数据范围1≤n < 10int fact(int n) {int ret = 1;int i = 1;while (i <= n) {ret *= i;i++;}return ret;
}int main() {int n;cin >> n;int t = fact(n);cout <<  n <<"的阶乘为: " << t << endl;return 0;
}

第2题  x和y的最大值

代码如下:

//x和y的最大值
//输入两个整数x和y,请你编写一个函数,int max(intx,int y),计算并输出x和y的最大值。
//输入共一行,包含两个整数x和y。
//输出共一行,包含一个整数,表示两个数中较大的那个数。
//数据范围  - 100 ≤x, y≤ 100int max(int x, int y) {if (x > y) return x;return y;
}int main() {int x, y;cin >> x >> y;int ret = max(x, y);cout << "两个数中较大的那个数为: " << ret << endl;return 0;
}

第3题  最大公约数

 代码如下:

//最大公约数
//输入两个整数a和b,请你编写一个函数,int gcd(int a,int b),计算并输出a和b的最大公约数。
//输入共一行,包含两个整数a和b。
//输出共一行,包含一个整数,表示a和b的最大公约数。
//数据范围1 ≤ a, b≤ 1000
//输入样例:12 16
//输出样例:4int gcd(int a, int b) {for (int i = 1000; i >= 0; i--) {if (a % i == 0 && b % i == 0) {return i;}}return -1;
}int main() {int a, b;cin >> a >> b;int ret = gcd(a, b);cout << "最大公约数为: " << ret << endl;return 0;
}

第4题  交换数值

代码如下:

//交换数值
//输入两个整数x和y,请你编写一个函数,void swap(int &x,int &y),交换两个整数的数值并输出交换后的x和y。
//输入共一行,包含两个整数x和y。
//输出共一行,包含交换后的x和y。
//数据范围 1 ≤ x, y≤ 100
//输入样例: 3 5
//输出样例: 5 3void swap(int& x, int& y) {if (x == y) return;  //如果2个数相等,则不用交换int t = x;			 //2个数不相等的情况x = y;y = t;
}int main() {int x, y;cout << "交换前: ";cin >> x >> y;swap(x, y);cout << "交换后: ";cout << x <<" "<< y << endl;return 0;
}

第5题  打印数字

代码如下:

//打印数字
//输入一个长度为n的数组a和一个整数size,请你编写一个函数,void print(int a[],int size),打印数组a中的前size个数
//输入第一行包含两个整数n和size。
//第二行包含n个整数a[],表示整个数组。
//输出共一行,包含size个整数,表示数组的前size个数。
//数据范围 1 ≤n ≤ 1000 ,1 < size < n,
//输入样例:5 3
//		   1 2 3 4 5
//输出样例: 1 2 3void print(int a[], int size) {for (int i = 0; i < size; i++) {cout << a[i] << " ";}cout << endl;
}int main() {int a[1000];int n;cin >> n;int size;cin >> size;for (int i = 0; i < n; i++) {cin >> a[i];}print(a, size);return 0;
}

第6题  打印矩阵

 代码如下:

//打印矩阵
//给定一个row*col的二维数组a,请你编写一个函数,void print2D(int a[][N],int row,int col),打印数组构成的row行,col列的矩阵。
//注意,每打印完一整行需要输出一个回车。
//输入第一行包含两个整数row, col。
//接下来row行,每行包含col个整数,表示完整二维数组a。
//输出共row行,每行col个整数,表示打印出的矩阵。
//数据范围 1 < row < 100, 1 ≤ col < 100
//输入样例: 3 4
//          1 3 4 5
//          2 6 9 4
//		    1 4 7 5
//输出样例:
//      	1 3 4 5
//			2 6 9 4
//			1 4 7 5const int N = 100;
int a[N][N] = { 0 };void print2D(int a[][N], int row, int col) {for (int i = 0; i < row; i++) {for (int j = 0; j < col; j++) {cout << a[i][j] << " ";}cout << endl;}
}int main() {int row, col;cin >> row >> col;for (int i = 0; i < row; i++) {for (int j = 0; j < col; j++) {cin >> a[i][j];}}print2D(a, row, col);return 0;
}

第7题  递归求阶乘

代码如下:

//递归求阶乘
//请使用递归的方式求n的阶乘。
//输入共一行,包含一个整数n。
//输出共一行,包含一个整数,表示n的阶乘的值。
//数据范围 1 ≤n≤ 10
//输入样例:  3
//输出样例:  6int Func(int n) {if (n == 1) return 1;return n * Func(n - 1);
}int main() {int n;cin >> n;int ret = Func(n);cout << n << "的阶乘为: " << ret << endl;return 0;
}

第8题  递归求斐波那契数列

 代码如下:

//递归求斐波那契数列
//斐波那契数列:1,1,2,3,5..,这个数列从第3项开始,每一项都等于前两项之和
//输入共一行,包含整数n
//输出共一行,包含一个整数,表示斐波那契数列的第n项。
//数据范围 1≤n < 30
//输入样例: 8
//输出样例: 3//f(1) = 1,f(2) = 1
//f(3) = f(1) + f(2)
//f(4) = f(2) + f(3)
//f(5) = f(3) + f(4)
//f(6) = f(4) + f(5)
//f(7) = f(5) + f(6)
//...
//f(n) = f(n-2) + f(n-1)int Fab(int n) {if (n <= 2) return 1;return Fab(n - 2) + Fab(n - 1);
}int main() {int n;cin >> n;int ret = Fab(n);cout << "斐波那契数列的第 " << n << " 项为: " << ret << endl;return 0;
}

片尾

今天我们学习了函数相关知识,下一篇我们将继续练习函数部分习题。希望看完这篇文章对友友们有所帮助!!!

点赞收藏加关注!!!

谢谢大家!!!

相关文章:

C++蓝桥杯基础篇(九)

片头 嗨&#xff01;小伙伴们&#xff0c;大家好~ 今天我们将学习蓝桥杯基础篇&#xff08;十&#xff09;&#xff0c;学习函数相关知识&#xff0c;准备好了吗&#xff1f;咱们开始咯&#xff01; 一、函数基础 一个典型的函数定义包括以下部分&#xff1a;返回类型、函数名…...

Java Spring MVC (2)

常见的Request Controller 和 Response Controller 的区别 用餐厅点餐来理解 想象你去一家餐厅吃饭&#xff1a; Request Controller&#xff08;接单员&#xff09;&#xff1a;负责处理你的点餐请求&#xff0c;记录你的口味、桌号等信息。Response Controller&#xff08…...

Elasticsearch:使用 BigQuery 提取数据

作者&#xff1a;来自 Elastic Jeffrey Rengifo 了解如何使用 Python 在 Elasticsearch 中索引和搜索 Google BigQuery 数据。 BigQuery 是 Google 的一个平台&#xff0c;允许你将来自不同来源和服务的数据集中到一个存储库中。它还支持数据分析&#xff0c;并可使用生成式 AI…...

接口-菜品分页查询

业务内容 页面上菜品根据菜品名称、菜品分类、售卖状态三个字段进行分页查询。 在请求参数中携带了菜品名称、菜品分类、售卖状态三个字段参数。 返回PageResult类型的实体。 注意&#xff1a;在返回数据中在records下有个categoryName&#xff0c;这个字段的内容在category…...

springboot3 RestClient、HTTP 客户端区别

1 RestClient使用 RestClient 是 Spring 6.1 M2 中引入的同步 HTTP 客户端&#xff0c;它取代了 RestTemplate。同步 HTTP 客户端以阻塞方式发送和接收 HTTP 请求和响应&#xff0c;这意味着它会等待每个请求完成后才继续下一个请求。本文将带你了解 RestClient 的功能以及它与…...

自我训练模型:通往未来的必经之路?

摘要 在探讨是否唯有通过自我训练模型才能掌握未来的问题时&#xff0c;文章强调了底层技术的重要性。当前&#xff0c;许多人倾向于关注应用层的便捷性&#xff0c;却忽视了支撑这一切的根本——底层技术。将模型简单视为产品是一种短视行为&#xff0c;长远来看&#xff0c;理…...

RuoYi框架添加自己的模块(学生管理系统CRUD)

RuoYi框架添加自己的模块&#xff08;学生管理系统&#xff09; 框架顺利运行 首先肯定要顺利运行框架了&#xff0c;这个我不多说了 设计数据库表 在ry数据库中添加表tb_student 表字段如图所示 如图所示 注意id字段是自增的 注释部分是后面成功后前端要展示的部分 导入…...

linux查看python版本

1.查看Linux是否安装python yum list all | grep python 2.Linux安装python yum install python 3.Linux查看python版本 python -V...

算法题(89):单项链表

审题&#xff1a; 本题需要我们实现一个可以执行三个指令的数据结构来解决这里的问题 思路&#xff1a; 方法一&#xff1a;利用数组模拟链表 由于这里涉及插入删除操作&#xff0c;所以我们不能使用数组结构存储数据&#xff0c;这样子会超时&#xff0c;所以我们就利用数组来…...

开源之夏经验分享|Koupleless 社区黄兴抗:在开源中培养工程思维

开源之夏经验分享&#xff5c;Koupleless 社区黄兴抗&#xff1a;在开源中培养工程思维 文|黄兴抗 电子信息工程专业 Koupleless 社区贡献者 就读于南昌师范学院&#xff0c;电子信息工程专业的大三学生。 本文 2634 字&#xff0c;预计阅读 7​ 分钟​ 今天 SOFAStack 邀…...

体验开源openeuler openharmony stratovirt模拟器

文档 openeuler社区面向数字基础设施的开源操作系统 openharmony社区 OpenHarmony是由开放原子开源基金会&#xff08;OpenAtom Foundation&#xff09;孵化及运营的开源项目, 目标是面向全场景、全连接、全智能时代、基于开源的方式&#xff0c;搭建一个智能终端设备操作系统…...

【AI实践】基于TensorFlow/Keras的CNN(卷积神经网络)简单实现:手写数字识别的工程实践

深度神经网络系列文章 【AI深度学习网络】卷积神经网络&#xff08;CNN&#xff09;入门指南&#xff1a;从生物启发的原理到现代架构演进【AI实践】基于TensorFlow/Keras的CNN&#xff08;卷积神经网络&#xff09;简单实现&#xff1a;手写数字识别的工程实践 引言 在深度…...

深入探讨AI-Ops架构 第一讲 - 运维的进化历程以及未来发展趋势

首先&#xff0c;让我们一起回顾运维的进化之路&#xff0c;然后再深入探讨AI-Ops架构的细节。 运维的进化历程 1. AI 大范围普及前的运维状态 (传统运维) 在AI技术尚未广泛渗透到运维领域之前&#xff0c;我们称之为传统运维&#xff0c;其主要特点是&#xff1a; 人工驱动…...

2025年全球生成式AI消费应用发展趋势报告

原文链接&#xff1a;The Top 100 Gen AI Consumer Apps - 4th Edition | Andreessen Horowitz 核心要点&#xff1a;本报告由a16z发布&#xff0c;深度解析了2025年全球生成式AI消费应用的发展格局&#xff0c;揭示了技术迭代与商业化加速的双重趋势。 报告显示&#xff0c;A…...

VBA 列方向合并单元格,左侧范围大于右侧范围

实现功能如下&#xff1a; excel指定行列范围内的所有单元格 规则1&#xff1a;每一列的连续相同的值合并单元格 规则2&#xff1a;每一列的第一个非空单元格与其下方的所有空白单元格合并单元 规则3&#xff1a;优先左侧列合并单元格&#xff0c;合并后&#xff0c;右侧的单元…...

设计AI芯片架构的入门 研究生入行数字芯片设计、验证的项目 opentitan

前言 这几年芯片设计行业在国内像坐过山车。时而高亢&#xff0c;时而低潮。最近又因为AI的热潮开始high起来。到底芯片行业的规律是如何&#xff1f; 我谈谈自己观点&#xff1a;芯片设计是“劳动密集型”行业。 “EDA和工具高度标准化和代工厂的工艺标准化之后&#xff0c;芯…...

【弹性计算】异构计算云服务和 AI 加速器(二):适用场景

异构计算云服务和 AI 加速器&#xff08;二&#xff09;&#xff1a;适用场景 1.图形处理2.视频处理3.计算4.人工智能 异构计算 目前已经被广泛地应用于生产和生活当中&#xff0c;主要应用场景如下图所示。 1.图形处理 GPU 云服务器在传统的图形处理领域具有强大的优势&…...

JVM常用概念之移动GC和局部性

问题 非移动GC一定比移动GC好吗&#xff1f; 基础知识 移动GC和非移动GC 移动GC 在进行垃圾回收时&#xff0c;为了减少碎片而移动对象来顺利完成垃圾回收的GC。 Serial GC 在单线程环境下&#xff0c;它在标记-清除&#xff08;Mark-Sweep&#xff09;算法的基础上进行…...

微服务保护:Sentinel

home | Sentinelhttps://sentinelguard.io/zh-cn/ 微服务保护的方案有很多&#xff0c;比如&#xff1a; 请求限流 线程隔离 服务熔断 服务故障最重要原因&#xff0c;就是并发太高&#xff01;解决了这个问题&#xff0c;就能避免大部分故障。当然&#xff0c;接口的并发…...

使用Wireshark截取并解密摄像头画面

在物联网&#xff08;IoT&#xff09;设备普及的今天&#xff0c;安全摄像头等智能设备在追求便捷的同时&#xff0c;往往忽视了数据传输过程中的加密保护。很多摄像头默认通过 HTTP 协议传输数据&#xff0c;而非加密的 HTTPS&#xff0c;从而给潜在攻击者留下了可乘之机。本文…...

IDEA 基础配置: maven配置 | 服务窗口配置

文章目录 IDEA版本与MAVEN版本对应关系maven配置镜像源插件idea打开服务工具窗口IDEA中的一些常见问题及其解决方案IDEA版本与MAVEN版本对应关系 查找发布时间在IDEA版本之前的dea2021可以使用maven3.8以及以前的版本 比如我是idea2021.2.2 ,需要将 maven 退到 apache-maven-3.…...

20250-3-8 树的存储结构

一、树的逻辑结构回顾 树&#xff1a;一个分支结点可以有多课子树 如果按照二叉树的存储来实现树的存储&#xff0c;则只依靠数组下标&#xff0c;无法反映结点之间的逻辑关系。 二、双亲表示法&#xff08;顺序存储&#xff09; 1.因此&#xff1a;我们可以用链式存储的方法&…...

Visual-RFT视觉强化微调:用「试错学习」教会AI看图说话

&#x1f4dc; 文献卡 英文题目: Visual-RFT: Visual Reinforcement Fine-Tuning;作者: Ziyu Liu; Zeyi Sun; Yuhang Zang; Xiaoyi Dong; Yuhang Cao; Haodong Duan; Dahua Lin; Jiaqi WangDOI: 10.48550/arXiv.2503.01785摘要翻译: 像OpenAI o1这样的大型推理模型中的强化微调…...

PDF处理控件Aspose.PDF,如何实现企业级PDF处理

PDF处理为何成为开发者的“隐形雷区”&#xff1f; “手动调整200页PDF目录耗时3天&#xff0c;扫描件文字识别错误导致数据混乱&#xff0c;跨平台渲染格式崩坏引发客户投诉……” 作为开发者&#xff0c;你是否也在为PDF处理的复杂细节消耗大量精力&#xff1f;Aspose.PDF凭…...

DeepSeek-R1本地化部署(Mac)

一、下载 Ollama 本地化部署需要用到 Ollama&#xff0c;它能支持很多大模型。官方网站&#xff1a;https://ollama.com/ 点击 Download 即可&#xff0c;支持macOS,Linux 和 Windows&#xff1b;我下载的是 mac 版本&#xff0c;要求macOS 11 Big Sur or later&#xff0c;Ol…...

Swift Package Manager (SPM) 创建并集成本地库

在macOS 项目中&#xff0c;使用 Swift Package Manager (SPM) 创建并集成本地库的完整步骤。 创建一个macos应用程序&#xff0c;选择 swift、oc、swiftui都可以。 创建好应用之后&#xff0c;开始创建SPM本地库。 打开终端app&#xff0c;进入项目根目录&#xff0c;逐次输…...

分布式锁—6.Redisson的同步器组件

大纲 1.Redisson的分布式锁简单总结 2.Redisson的Semaphore简介 3.Redisson的Semaphore源码剖析 4.Redisson的CountDownLatch简介 5.Redisson的CountDownLatch源码剖析 1.Redisson的分布式锁简单总结 (1)可重入锁RedissonLock (2)公平锁RedissonFairLock (3)联锁MultiL…...

文献分享: ConstBERT固定数目向量编码文档

&#x1f602;图放这了&#xff0c;大道至简的 idea \text{idea} idea不愧是 ECIR \text{ECIR} ECIR &#x1f449;原论文 1. ConstBERT \textbf{1. ConstBERT} 1. ConstBERT的原理 1️⃣模型的改进点&#xff1a;相较于 ColBERT \text{ColBERT} ColBERT为每个 Token \text{Tok…...

如何使用SSH命令安全连接并转发端口到远程服务器

ssh -p 22546 rootconnect.westc.gpuhub.com d6IS/mQKq/iG ssh -CNgv -L 6006:127.0.0.1:6006 rootconnect.westc.gpuhub.com -p 22546 第一条命令&#xff1a;用于登录远程服务器&#xff0c;进行交互式操作。第二条命令&#xff1a;用于建立 SSH 隧道&#xff0c;进行端口转…...

SolidWorks 转 PDF3D 技术详解

在现代工程设计与制造流程中&#xff0c;不同软件间的数据交互与格式转换至关重要。将 SolidWorks 模型转换为 PDF3D 格式&#xff0c;能有效解决模型展示、数据共享以及跨平台协作等问题。本文将深入探讨 SolidWorks 转 PDF3D 的技术原理、操作流程及相关注意事项&#xff0c;…...

9.2 EvictionManager源码解读

本节重点总结 : evictionManager初始化了两个相同的manager对象 evictionManager做本机驱逐pod的判定和厨房evictionAdmitHandler用来kubelet创建Pod前进依据本机的资源压力进行准入检查 evictionManager判断内存驱逐阈值有两种方法 第一种使用内核的memcg的通知机制&#xff…...

考研数一非数竞赛复习之Stolz定理求解数列极限

在非数类大学生数学竞赛中&#xff0c;Stolz定理作为一种强大的工具&#xff0c;经常被用来解决和式数列极限的问题&#xff0c;也被誉为离散版的’洛必达’方法&#xff0c;它提供了一种简洁而有效的方法&#xff0c;使得原本复杂繁琐的极限计算过程变得直观明了。本文&#x…...

整理一下高级设施农业栽培学这门课程的所有知识点

整理一下高级设施农业栽培学这门课程的所有知识点 以下是高级设施农业栽培学这门课程从入门到精通需要学习的知识点&#xff1a; 一、设施农业概述 设施农业的概念与发展历程 了解设施农业的定义、特点及作用&#xff0c;掌握其发展历程、现状与未来趋势。熟悉国内外设施农业…...

2025最新软件测试面试八股文(含答案+文档)

1、请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。 参考答案&#xff1a; 黑盒测试&#xff1a;已知产品的功能设计规格&#xff0c;可以进行测试证明每个实现了的功能是否符合要求。 白盒测试&#xff1a;已知产品的内部工作过程…...

系统架构设计师—系统架构设计篇—基于体系结构的软件开发方法

文章目录 概述基于体系结构的开发模型-ABSDM体系结构需求体系结构设计体系结构文档化体系结构复审体系结构实现体系结构演化 概述 基于体系结构&#xff08;架构&#xff09;的软件设计&#xff08;Architecture-Based Software Design&#xff0c;ABSD&#xff09;方法。 AB…...

求最大公约数【C/C++】

大家好啊&#xff0c;欢迎来到本博客( •̀ ω •́ )✧&#xff0c;我将带领大家详细的了解最大公约数的思想与解法。 一、什么是公约数 公约数&#xff0c;也称为公因数&#xff0c;是指两个或多个整数共有的因数。具体来说&#xff0c;如果一个整数能被两个或多个整数整除&…...

Transformer 代码剖析16 - BLEU分数(pytorch实现)

一、BLEU算法全景图 #mermaid-svg-uwjb5mQ2KAC6Rqbp {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-uwjb5mQ2KAC6Rqbp .error-icon{fill:#552222;}#mermaid-svg-uwjb5mQ2KAC6Rqbp .error-text{fill:#552222;stroke:…...

手机屏幕摔不显示了,如何用其他屏幕临时显示,用来导出资料或者清理手机

首先准备一个拓展坞 然后 插入一个外接的U盘 插入鼠标 插入有数字小键盘区的键盘 然后准备一根高清线&#xff0c;一端链接电脑显示器,一端插入拓展坞 把拓展坞的连接线&#xff0c;插入手机充电口&#xff08;可能会需要转接头&#xff09; 然后确保手机开机 按下键盘…...

labelimg标注的xml标签转换为yolo格式标签

本文不生产技术&#xff0c;只做技术的搬运工&#xff01;&#xff01;&#xff01; 前言 在yolo训练时&#xff0c;我们需要对图像进行标注&#xff0c;而使用labelimg标注时如果直接选择输出yolo格式的数据集&#xff0c;则原始数据的很多信息无法被保存&#xff0c;因此一版…...

Linux云计算SRE-第十七周

1. 做三个节点的redis集群。 1、编辑redis节点node0(10.0.0.100)、node1(10.0.0.110)、node2(10.0.0.120)的安装脚本 [rootnode0 ~]# vim install_redis.sh#!/bin/bash # 指定脚本解释器为bashREDIS_VERSIONredis-7.2.7 # 定义Redis的版本号PASSWORD123456 # 设置Redis的访问…...

K8S学习之基础十八:k8s的灰度发布和金丝雀部署

灰度发布 逐步扩大新版本的发布范围&#xff0c;从少量用户逐步扩展到全体用户。 特点是分阶段发布、持续监控、逐步扩展 适合需要逐步验证和降低风险的更新 金丝雀部署 将新版本先部署到一小部分用户或服务器&#xff0c;观察其表现&#xff0c;再决定是否全面推广。 特点&…...

WSL with NVIDIA Container Toolkit

一、wsl 下安装 docker 会提示安装 docekr 桌面版&#xff0c;所以直接安装 docker 桌面版本即可 二、安装 NVIDIA Container Toolkit NVIDIA Container Toolkit仓库 https://github.com/NVIDIA/nvidia-container-toolkit​github.com/NVIDIA/nvidia-container-toolkit 安装…...

PAT线上考试 真题/注意细节(甲/乙级)

闲谈 从此以后&#xff01;参加竞赛&#xff01; 都要为自己留够足够的时间练习&#xff01; 都要为自己留够足够的时间练习&#xff01; 都要为自己留够足够的时间练习&#xff01; 重要的事情说三遍&#xff0c;毕竟这只是我参加各种竞赛的开始&#xff01; \(&#xff…...

springcloud sentinel教程

‌QPS&#xff08;Queries Per Second&#xff09;即每秒查询率 TPS&#xff0c;每秒处理的事务数目 PV&#xff08;page view&#xff09;即页面浏览量 UV 访问数&#xff08;Unique Visitor&#xff09;指独立访客访问数 一、初识Sentinel 什么是雪崩问题? 微服务之间相…...

摄相机标定的基本原理

【相机标定的基本原理与经验分享】https://www.bilibili.com/video/BV1eE411c7kr?vd_source7c2b5de7032bf3907543a7675013ce3a 相机模型&#xff1a; 定义&#xff1a; 内参&#xff1a;就像相机的“眼睛”。它描述了相机内部的特性&#xff0c;比如焦距&#xff08;镜头的放…...

HJ C++11 Day2

Initializer Lists 对于一个类P class P{P(int a, int b){cout << "P(int, int), a" << a << ", b " << b << endl;}P(initializer_list<int> initlist){cout << "P(initializer_list<int>), val…...

在 ASP.NET Core 中启用 Brotli 和 Gzip 响应压缩

在本文中&#xff0c;我们将探讨如何在 ASP.NET Core 应用程序中启用响应压缩&#xff0c;重点介绍 Brotli 和 Gzip 算法以及如何验证压缩是否有效。 什么是响应压缩&#xff1f; 响应压缩通过使用Brotli 或 Gzip等算法来最小化 HTTP 响应的大小。这些算法在传输文本资产&#…...

leetcode69.x 的平方根

题目&#xff1a; 给你一个非负整数 x &#xff0c;计算并返回 x 的 算术平方根 。 由于返回类型是整数&#xff0c;结果只保留 整数部分 &#xff0c;小数部分将被 舍去 。 注意&#xff1a;不允许使用任何内置指数函数和算符&#xff0c;例如 pow(x, 0.5) 或者 x ** 0.5 。…...

第11章 web应用程序安全(网络安全防御实战--蓝军武器库)

网络安全防御实战--蓝军武器库是2020年出版的&#xff0c;已经过去3年时间了&#xff0c;最近利用闲暇时间&#xff0c;抓紧吸收&#xff0c;总的来说&#xff0c;第11章开始学习利用web应用程序安全&#xff0c;主要讲信息收集、dns以及burpsuite&#xff0c;现在的资产测绘也…...

flac、kgg、kgma格式音频转换MP3

1. 选择需要转换的音频文件 2. 下载闪电音频格式转换器 闪电音频格式转换器-全面覆盖常见音乐格式_音频合并分割_音频压缩 3. 买会员有点贵&#xff0c;也没必要&#xff0c;偶尔转换一次的&#xff0c;就去闲鱼买&#xff0c;两天会员9块钱。 4. 闲鱼卖家给兑换码&#xff0c…...