C++蓝桥杯基础篇(六)
片头
嗨~小伙伴们,大家好!今天我们来一起学习蓝桥杯基础篇(六),练习相关的数组习题,准备好了吗?咱们开始咯!

第1题 数组的左方区域

这道题,实质上是找规律,我们观察到,可以将绿色的区域分成上下2个部分,因此,我们可以列出2张表。
| i | j |
| 1 | 0 |
| 2 | 0~1 |
| 3 | 0~2 |
| 4 | 0~3 |
| 5 | 0~4 |
| i | 0 ~ i-1 |
再看另一张表
| i | j |
| 6 | 0~4 |
| 7 | 0~3 |
| 8 | 0~2 |
| 9 | 0~1 |
| 10 | 0 |
| i | 0 ~ 10-i |
掌握规律后,一目了然,这道题的代码如下:
//数组的左方区域
//输入一个二维数组m[12][12],根据输入的要求
//求出二维数组的左方区域元素的平均值或元素的和
//数组的2条对角线将数组分为上下左右四个部分
//黄色部分为对角线,绿色部分为左方区域
//第一行输入一个大写字母,若为's',则表示需要求出左方部分的元素的和
//若为'm',则表示需要求出左方部分的元素的平均值
//接下来12行,每行包含12个用空格隔开的浮点数,表示这个二维数组
//其中,第 i+1 行的第 j+1 列表示数组元素m[i][j]
//输出一个数,表示所求的平均数或元素的和的值,保留1位小数int main() {char t;cin >> t;double m[12][12];int i, j;for ( i = 0; i < 12; i++) {for ( j = 0; j < 12; j++) {cin >> m[i][j];}}double sum = 0;int num = 0;for ( i = 1; i <= 5; i++) {for (j = 0; j <= i - 1; j++) {sum += m[i][j];num++;}}for (i = 6; i <= 10; i++) {for (j = 0; j <= 10 - i; j++) {sum += m[i][j];num++;}}if (t == 's') printf("%.1lf\n", sum);else printf("%.1lf\n", sum / num);return 0;
}
第2题 平方矩阵 I

比如:

emmm,这道题,肯定不想让我们直接使用printf输出。我们需要寻找规律
举个例子呗~

因此,本道题的代码如下:(注意:取最小值时,需要引用头文件#include<math.h>)
//平方矩阵 I
//输入整数n,输出一个n阶的回字形二维数组
//数组的最外层位1,次外层为2,以此类推
//输入包含多行,每行包含1个整数n
//当输入行为n=0时,表示输入结束,且该行无需做任何处理
//对于每个输入整数n,输出一个满足要求的n阶二维数组
//每个整数占n行,每行包含n个用空格隔开的整数
//每个数组输出完毕后,输出一个空行int main() {int n;while (cin >> n, n) {for (int i = 1; i <= n; i++) {for (int j = 1; j <= n; j++) {int up = i, down = n - i + 1, left = j, right = n - j + 1;cout << min(min(up, down), min(left, right)) << " ";}cout << endl;}}return 0;
}
第3题 数组变换

哈哈~这道题,先来一个小学生都看得懂的方法:
//数组变换
//输入一个长度为20的整数数组n
//将整个数组翻转,使得第一个元素成为倒数第一个元素
//第二个元素成为倒数第二个元素,...,倒数第二个元素成为第二个元素
//倒数第一个元素成为第一个元素,输出翻转后的数组
//输入包含20个整数,每个数占一行
//输出新数组中的所有元素,每个元素占一行
//输出格式为"N[i]=x",其中i为元素编号(从0开始),x为元素的值int main() {int n[20];int b[20];int i, j;for (i = 0; i < 20; i++) //往原数组中添加元素{ cin >> n[i];}for (i = 19, j = 0; i >= 0; i--, j++) //将原数组里面的元素拷贝到新数组中{ b[j] = n[i];}for (i = 0; i < 20; i++) //输出新数组里面的元素{ printf("N[%d] = %d\n", i, b[i]);}return 0;
}
我们还可以采用另外一种方法,其中就是旋转数组的最初版本。定义reverse函数,用双指针法交换首尾元素,当它们相遇或错过时,循环结束。
代码如下:
void Reverse(int a[], int left,int right) {while (left < right) {int temp = a[left];a[left] = a[right];a[right] = temp;left++;right--;}
}int main() {int n[20];int i;for (i = 0; i < 20; i++) {cin >> n[i];}Reverse(n, 0, 19);for (i = 0; i < 20; i++) {printf("N[%d] = %d\n", i, n[i]);}cout << endl;return 0;
}
第4题 斐波那契数列

斐波那契数列,是我们的老朋友啦!之前的习题中,见过很多次。今天再来认识一下~
f(0) = 0,f(1)=1,
f(2) = f(0) + f(1) = 1
f(3) = f(1) + f(2) = 2
f(4) = f(2) + f(3) = 3
f(5) = f(3) + f(4) = 5
......
f(n) = f(n-2) + f(n-1)
可以看出,从第2项开始,每一项 = 前2项之和
这道题,是想让我们求斐波那契数列的第n项,但是不止输出1次,而是输出t次(t表示实验次数)
这就需要我们事先把斐波那契数组准备好,将数字填进数组。再根据输入的第n项,输出Fib(n),这样循环t次。
代码如下:
//斐波那契数列
//输入整数n,求出斐波那契数列中的第n项是多少
//斐波那契数列的第0项是0,第1项是1
//从第2项开始的每一项都等于前2项之和
//输入第一行包含整数t,表示共有t个测试数据
//接下来的t行,每行包含一个整数n
//每个测试数据输出一个结果,每个结果占一行
//结果格式为"Fib(n)=x",其中,n为项数,x为第n项的值int main() {int t; //表示共有t个测试数据cin >> t;int n; //求出斐波那契数列中的第n项是多少long long Fib[60];//数组的元素类型必须是long long//如果为int,元素会超过int类型的范围,导致溢出Fib[0] = 0;Fib[1] = 1;for (int i = 2; i < 60; i++) {Fib[i] = Fib[i - 1] + Fib[i - 2];}while (t--) {cin >> n;printf("Fib(%d) = %lld\n", n, Fib[n]);}return 0;
}
在这里,注意:二维数组Fib的元素类型必须为long long。如果为int类型,元素可能会超过int类型的范围,导致溢出。
第5题 最小数和它的位置

这道题,我们可以使用擂台法。将第一个元素保存到临时变量里面,后面的元素依次进行比较,如果后面的某一个元素比第一个元素小,则更新最小数的值以及位置
代码如下:
//最小数和它的位置
//输入一个整数n和一个长度为n的整数数组x
//请你找出数组中最小的元素,并输出它的值和下标
//注意: 如果有多个最小值,则返回下标最小的那个
//输入第一行包含整数n
//第二行包含n个用空格隔开的整数x[i]
//第一行输出"Minimum value: x",其中x为数组元素最小值
//第二行输出"Position: y",其中y为最小值元素的下标(下标从0开始计数)int main() {int n;cin >> n;int a[1001];int i;for (i = 0; i < n; i++) {cin >> a[i];}int min = a[0];int min_i = 0;for (i = 1; i < n; i++) {if (a[i] < min) {min = a[i];min_i = i;}}printf("Minimum value: %d\n", min);printf("Position: %d\n", min_i);return 0;
}
第6题 数组中的列

求某一列的元素的平均值或元素的和,那么列不变,行数从 0~11依次相加。
代码如下:
//数组中的列
//输入一个二维数组m[12][12],根据输入的要求
//求出二维数组中某一列的元素的平均值或元素的和
//第一行输入整数c,表示所求的具体列数(列数从0开始计数)
//第二行包含1个字母,若为's',则表示需要求出第c列的元素的和
//若为'm',则表示需要求出第c列的元素的平均值
//接下来的12行,每行包含12个用空格隔开的浮点数,表示这个二维数组
//其中第 i+1 行的第 j+1 个数表示数组元素m[i][j]
//输出1个数,表示所求的平均数或元素的和的值,保留一位小数int main() { int c; //表示所求的具体列数(列数从0开始计数)cin >> c;char t;cin >> t;double m[12][12];for (int i = 0; i < 12; i++) {for (int j = 0; j < 12; j++) {cin >> m[i][j];}}double sum = 0;int num = 0;for (int i = 0; i < 12; i++) {sum += m[i][c];num++;}if (t == 's') printf("sum = %.1lf\n", sum);else printf("average = %.1lf\n", sum / num);return 0;
}
第7题 数组的右下半部分

这道题,其实是寻找行数和列数的规律
| i | j |
| 1 | 11 |
| 2 | 10~11 |
| 3 | 9~11 |
| 4 | 8~11 |
| 5 | 7~11 |
| 6 | 6~11 |
| 7 | 5~11 |
| 8 | 4~11 |
| 9 | 3~11 |
| 10 | 2~11 |
| 11 | 1~11 |
| i | 12-i ~ 11 |
因此,行数和列数的规律:行数的取值范围1~11,列数的起始位置为12-i,结束位置为11
代码如下:
//数组的右下半部分
//输入一个二维数组m[12][12]
//求二维数组的右下半部分元素的平均值或元素的和
//右下半部分部分指对角线下方的部分
//第一行输入一个大写字母,若为's',则表示需要求出右下半部分的元素的和
//若为'm',则表示需求出右下半部分的元素的平均值
//接下来12行,每行包含12个用空格隔开的浮点数,表示这个二维数组
//其中第i+1行的第j+1个数表示数组元素m[i][j]
//输出1个数,表示所求的平均数或和的值,保留1位小数int main() {char t;cin >> t;double m[12][12];int i, j;for (i = 0; i < 12; i++) {for (j = 0; j < 12; j++) {cin >> m[i][j];}}double sum = 0;int num = 0;for (i = 1; i <= 11; i++) {for (j = 12 - i; j <= 11; j++) {sum += m[i][j];num++;}}if (t == 's') printf("sum = %.1lf\n", sum);else printf("average = %.1lf\n", sum / num);return 0;
}
第8题 数组的左下半部分

这道题,同样是寻找行数和列数的关系
| i | j |
| 1 | 0 |
| 2 | 0~1 |
| 3 | 0~2 |
| 4 | 0~3 |
| 5 | 0~4 |
| 6 | 0~5 |
| 7 | 0~6 |
| 8 | 0~7 |
| 9 | 0~8 |
| 10 | 0~9 |
| 11 | 0~10 |
| i | 0 ~ i-1 |
因此,行数和列数的规律:行数的取值范围1~11,列数的起始位置为0,结束位置在i-1
代码如下:
//数组的左下半部分
//输入一个二维数组m[12][12]
//求二维数组的左下半部分元素的平均值或元素的和
//左下半部分部分指对角线下方的部分
//第一行输入一个大写字母,若为's',则表示需要求出左下半部分的元素的和
//若为'm',则表示需求出左下半部分的元素的平均值
//接下来12行,每行包含12个用空格隔开的浮点数,表示这个二维数组
//其中第i+1行的第j+1个数表示数组元素m[i][j]
//输出1个数,表示所求的平均数或和的值,保留1位小数int main() {char t;cin >> t;double m[12][12];int i, j;for (i = 0; i < 12; i++) {for (j = 0; j < 12; j++) {cin >> m[i][j];}}double sum = 0;int num = 0;for (i = 1; i <= 11; i++) {for (j = 0; j <= i - 1; j++) {sum += m[i][j];num++;}}if (t == 's') printf("sum = %.1lf\n", sum);else printf("ave = %.1lf\n", sum / num);return 0;
}
第9题 数组的下方区域

这道题,同样是寻找行数和列数的规律:
| i | j |
| 7 | 5~6 |
| 8 | 4~7 |
| 9 | 3~8 |
| 10 | 2~9 |
| 11 | 1~10 |
| i | 12-i ~ i-1 |
通过表格,我们发现行数的取值范围:7~11,列数的起始位置:12-i,结束位置:i-1
代码如下:
//数组的下方区域
//输入一个二维数组m[12][12]
//求二维数组的下方部分元素的平均值或元素的和
//下方部分部分指对角线下方的部分
//第一行输入一个大写字母,若为's',则表示需要求出下方部分的元素的和
//若为'm',则表示需求出下方部分的元素的平均值
//接下来12行,每行包含12个用空格隔开的浮点数,表示这个二维数组
//其中第i+1行的第j+1个数表示数组元素m[i][j]
//输出1个数,表示所求的平均数或和的值,保留1位小数int main() {char t;cin >> t;double m[12][12];int i, j;for (i = 0; i < 12; i++) {for (j = 0; j < 12; j++) {cin >> m[i][j];}}double sum = 0;int num = 0;for (i = 7; i <= 11; i++) {for (j = 12 - i; j <= i - 1; j++) {sum += m[i][j];num++;}}if (t == 's') printf("sum = %.1lf\n", sum);else printf("ave = %.1lf\n", sum / num);return 0;
}
第10题 数组的右方区域

这道题,同样是寻找行数和列数的规律,我们可以把阴影部分分成上下2块区域
| i | j |
| 1 | 11 |
| 2 | 10~11 |
| 3 | 9~11 |
| 4 | 8~11 |
| 5 | 7~11 |
| i | 12-i ~ 11 |
上面是上方部分行数和列数之间的关系,接下来我们看看下方部分:
| i | j |
| 6 | 7~11 |
| 7 | 8~11 |
| 8 | 9~11 |
| 9 | 10~11 |
| 10 | 11 |
| i | i+1 ~ 11 |
通过表格,我们可以发现:上方部分:行数的取值范围:1~5,列数的起始位置:12-i,结束位置:11;下方部分:行数的取值范围:6~10,列数的起始位置:i+1,结束位置:11
代码如下:
//数组的右方区域
//输入一个二维数组m[12][12]
//求二维数组的右方部分元素的平均值或元素的和
//右方部分部分指对角线右方的部分
//第一行输入一个大写字母,若为's',则表示需要求出右方部分的元素的和
//若为'm',则表示需求出右方部分的元素的平均值
//接下来12行,每行包含12个用空格隔开的浮点数,表示这个二维数组
//其中第i+1行的第j+1个数表示数组元素m[i][j]
//输出1个数,表示所求的平均数或和的值,保留1位小数int main() {char t;cin >> t;double m[12][12];int i, j;for (i = 0; i < 12; i++) {for (j = 0; j < 12; j++) {cin >> m[i][j];}}//右方区域//上double sum = 0;int num = 0;for (i = 1; i <= 5; i++) {for (j = 12 - i; j <= 11; j++) {sum += m[i][j];num++;}}//下for (i = 6; i <= 10; i++) {for (j = i + 1; j <= 11; j++) {sum += m[i][j];num++;}}if (t == 's') printf("sum = %.1lf\n", sum);else printf("ave = %.1lf\n", sum / num);return 0;
}
第11题 平方矩阵Ⅱ

我们一起来看看例子吧~

乍一看,好像看不出来有啥规律,咋整?
嘿嘿,我们单独拿一个例子出来,你就明白了

因此,本道题的代码如下:
//平方矩阵Ⅱ
//输入整数n,输出一个n阶的二维数组
//数组的形式参照样例
//输入包含多行,每行包含一个整数n
//当输入行为 n=0 时,表示输入结束,且该行无需作任何处理
//对于每个输入整数n,输出一个满足要求的n阶二维数组
//每个数组占n行,每行包含n个用空格隔开的整数
//每个数组输出完毕后,输出一个空行
int main() {int n;int a[60][60];while (cin >> n, n) {for (int i = 0; i < n; i++) {a[i][i] = 1; //右对角线上的元素全为"1"for (int j = i + 1, k = 2; j < n; j++, k++) a[i][j] = k; //纵向for (int m = i + 1, k = 2; m < n; m++, k++) a[m][i] = k; //横向}for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {cout << a[i][j] << " ";}cout << endl;}}return 0;
}
第12题 平方矩阵Ⅲ

这道题,题目已经告诉了我们规律:M[i][j] = ,相当于是2的n次方的变形版。本道题不难,代码如下:
//平方矩阵Ⅲ
//输入整数n,输出一个n阶的二维数组
//这个n阶二维数组满足m[i][j] = 2^(i+j)
//输入包含多行,每行包含一个整数n
//当输入行为 n=0 时,表示输入结束,且该行无需作任何处理
//对于每个输入整数n,输出一个满足要求的n阶二维数组
//每个数组占n行,每行包含n个用空格隔开的整数
//每个数组输出完毕后,输出一个空行int main() {int n;int m[60][60];while (cin >> n, n) {for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {m[i][j] = 1;//数组中的元素必须先初始化为1for (int h = 0; h < i + j; h++) m[i][j] *= 2;cout << m[i][j] << " ";}cout << endl;}}return 0;
}
或者,咱们不创建二维数组,直接打印,节省空间:
int main() {int n;while (cin >> n, n) {for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {int v = 1;for (int h = 0; h < i + j; h++) v *= 2;cout << v << " ";}cout << endl;}}return 0;
}
亦或者,咱们可以直接调用库里面的pow函数。需要引用头文件#include<math.h>
int main() {int n;int m[60][60];while (cin >> n, n) {for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {m[i][j] = pow(2, i + j); //调用库函数pow}}for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {cout << m[i][j] << " ";}cout << endl;}}return 0;
}
第13题 蛇形矩阵

emmm,光看题目,不好理解,咱们一起画画图~

因此,我们可以分别定义2个数组,存放横坐标的变化和纵坐标的变化,记为dx和dy。定义变量d,指向dx和dy数组的初始位置(下标为0)。如果出现"撞墙"这种情况,我们应该让d指向dx和dy数组的下一个位置,这样才能变换方向。
代码如下:
//蛇形矩阵
//输入2个整数n和m,输出一个n行m列的矩阵
//将数字1到n*m按照回字蛇形填充至矩阵中
//输入共一行,包含2个整数n和m
//输出满足要求的矩阵
//矩阵占n行,每行包含m个空格隔开的整数int h[100][100] = {0};//初始时,h的所有元素都被初始化为0int main() {int n, m;cin >> n >> m;int dx[] = { 0,1,0,-1 }; //横坐标的变化 int dy[] = { 1,0,-1,0 }; //纵坐标的变化int x,y;int k;int d;for (x = 0, y = 0,d = 0, k = 1; k <= n * m; k++) {h[x][y] = k;int a = x + dx[d]; //把新的横坐标存放到a里面int b = y + dy[d]; //把新的纵坐标存放到b里面//越界和重复//如果h[a][b]的值不等于0,说明该位置已经被填充过数字,即发生了重复if (a < 0 || a >= n || b < 0 || b>=m || h[a][b]) {d = (d + 1) % 4; //更新d指向的位置a = x + dx[d];b = y + dy[d];}x = a; //将a的值赋给xy = b; //将b的值赋给y}for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {cout << h[i][j] << " ";}cout << endl;}return 0;
}
通过代码,我们知道:
h是一个二维数组,用于存储蛇形矩阵的值。初始时,h的所有元素都被初始化为0。
当某个位置(x,y)被填充后,h[x][y]的值会被设置为当前的数字k。因此,如果h[a][b]的值不为0,说明该位置已经被填充过数字,即发生了重复。
片尾
今天我们学习了C++蓝桥杯基础篇(六),讲解了数组的相关习题。下一篇,我们将介绍字符串,希望对大家有帮助!!!
求点赞收藏加关注!!!
谢谢大家!!!

相关文章:
C++蓝桥杯基础篇(六)
片头 嗨~小伙伴们,大家好!今天我们来一起学习蓝桥杯基础篇(六),练习相关的数组习题,准备好了吗?咱们开始咯! 第1题 数组的左方区域 这道题,实质上是找规律,…...
React 常见面试题及答案
记录面试过程 常见问题,如有错误,欢迎批评指正 1. 什么是虚拟DOM?为什么它提高了性能? 虚拟DOM是React创建的一个轻量级JavaScript对象,表示真实DOM的结构。当状态变化时,React会生成新的虚拟DOM…...
和鲸科技推出人工智能通识课程解决方案,助力AI人才培养
2025年2月,教育部副部长吴岩应港澳特区政府邀请,率团赴港澳宣讲《教育强国建设规划纲要 (2024—2035 年)》。在港澳期间,吴岩阐释了教育强国目标的任务,并与特区政府官员交流推进人工智能人才培养的办法。这一系列行动体现出人工智…...
免费使用 DeepSeek API 教程及资源汇总
免费使用 DeepSeek API 教程及资源汇总 一、DeepSeek API 资源汇总1.1 火山引擎1.2 百度千帆1.3 阿里百炼1.4 腾讯云 二、其他平台2.1 华为云2.2 硅基流动 三、总结 DeepSeek-R1 作为 2025 年初发布的推理大模型,凭借其卓越的逻辑推理能力和成本优势,迅速…...
网络安全-使用DeepSeek来获取sqlmap的攻击payload
文章目录 概述DeepSeek使用创建示例数据库创建API测试sqlmap部分日志参考 概述 今天来使用DeepSeek做安全测试,看看在有思路的情况下实现的快不快。 DeepSeek使用 我有一个思路,想要测试sqlmap工具如何dump数据库的: 连接mysql数据库&#…...
网络原理--TCP/IP(2)
我们在之前已经介绍到TCP协议的核心机制二,接下来我们将继续介绍其他的核心机制。 核心机制三:连接管理 即建立连接,断开连接,在正常情况下,TCP要经过三次握⼿建⽴连接,四次挥⼿断开连接。 建立连接:TCP是通过“三次握手” 在生活中的握手就是打招呼,,但握手操作没有…...
Ragflow与Dify之我见:AI应用开发领域的开源框架对比分析
本文详细介绍了两个在AI应用开发领域备受关注的开源框架:Ragflow和Dify。Ragflow专注于构建基于检索增强生成(RAG)的工作流,强调模块化和轻量化,适合处理复杂文档格式和需要高精度检索的场景。Dify则旨在降低大型语言模…...
文件上传漏洞绕过WAF
文件上传漏洞绕过WAF学习笔记 1. WAF检测原理 WAF(Web应用防火墙)通过以下方式拦截文件上传攻击: 关键字匹配:检测文件名、内容中的敏感词(如<?php、eval)。 扩展名黑名单:拦截.php、.jsp…...
[含文档+PPT+源码等]精品基于Python实现的vue3+Django计算机课程资源平台
基于Python实现的Vue3Django计算机课程资源平台的背景,可以从以下几个方面进行阐述: 一、教育行业发展背景 1. 教育资源数字化趋势 随着信息技术的快速发展,教育资源的数字化已成为不可逆转的趋势。计算机课程资源作为教育领域的重要组成部…...
Qt 开源音视频框架模块之QtAV播放器实践
Qt 开源音视频框架模块QtAV播放器实践 1 摘要 QtAV是一个基于Qt的多媒体框架,旨在简化音视频播放和处理。它是一个跨平台的库,支持多种音视频格式,并提供了一个简单易用的API来集成音视频功能。QtAV的设计目标是为Qt应用程序提供强大的音视…...
【前端】XML,XPATH,与HTML的关系
XML与HTML关系 XML(可扩展标记语言)和 HTML(超文本标记语言)是两种常见的标记语言,但它们有不同的目的和用途。它们都使用类似的标记结构(标签),但在设计上存在一些关键的差异。 XML…...
ubuntu服务器安装VASP.6.4.3
ubuntu服务器安装VASP.6.4.3 1 安装Intel OneAPI Base Toolkit和Intel OneAPI HPC Toolkit1.1 更新并安装环境变量1.2 下载Intel OneAPI Base Toolkit和Intel OneAPI HPC Toolkit安装包1.3 安装 Intel OneAPI Base Toolkit1.4 安装 Intel OneAPI HPC Toolkit1.5 添加并激活环境…...
市场加速下跌,但监管「坚冰」正在消融
作者:Techub 热点速递 撰文:Yangz,Techub News 与近日气温逐步回暖不同,自 2 月 25 日比特币跌破 9 万美元以来,加密货币市场行情一路下滑。今日 10 时 50 分左右,比特币更是跌破 8 万美元大关,…...
7.2 - 定时器之计算脉冲宽度实验
文章目录 1 实验任务2 系统框图3 软件设计 1 实验任务 本实验任务是通过CPU私有定时器来计算按键按下的时间长短。 2 系统框图 参见7.1。 3 软件设计 注意事项: 定时器是递减计数的,需要考虑StartCount<EndCount的情况。 /***********…...
Imagination DXTP GPU IP:加速游戏AI应用,全天候畅玩无阻
日前,Imagination 推出了最新产品——Imagination DXTP GPU IP,在智能手机和其他功耗受限设备上加速图形和AI工作负载时,保证全天候的电池续航。它是我们最新D系列GPU的最终产品,集成了自2022年发布以来引入的一系列功能ÿ…...
关于流水线的理解
还是不太理解,我之前一直以为,对axis总线,每一级的寄存器就像fifo一样,一级一级的分级存储最后一级需要的数据。(现在看来,我这个理解应该也是没有问题的) 如下图,一开始是在解析axi…...
采样算法二:去噪扩散隐式模型(DDIM)采样算法详解教程
参考 https://arxiv.org/pdf/2010.02502 一、背景与动机 去噪扩散隐式模型(DDIM) 是对DDPM的改进,旨在加速采样过程同时保持生成质量。DDPM虽然生成效果优异,但其采样需迭代数百至数千次,效率较低。DDIM通过以下关键…...
北京大学DeepSeek提示词工程与落地场景(PDF无套路免费下载)
近年来,大模型技术飞速发展,但许多用户发现:即使使用同一款 AI 工具,效果也可能天差地别——有人能用 AI 快速生成精准方案,有人却只能得到笼统回答。这背后的关键差异,在于提示词工程的应用能力。 北京大…...
Hutool - POI:让 Excel 与 Word 操作变得轻而易举
各位开发者们,在日常的 Java 开发工作里,处理 Excel 和 Word 文件是相当常见的需求。无论是从 Excel 里读取数据进行分析,还是将数据写入 Excel 生成报表,亦或是对 Word 文档进行内容编辑,传统的 Apache POI 库虽然功能…...
IDEAPyCharm安装ProxyAI(CodeGPT)插件连接DeepSeek-R1教程
背景:最近DeepSeek比较火嘛,然后在githup上也看到了GitHub Copilot,就想着现在AI的准确率已经可以提高工作效率了。所以从网上找了一些编程插件,发现Proxy支持的模型比较多,通用性和适配性比较好。所以本文记录一下pro…...
VS2019+CMake实战:Super4PCS点云配准从源码编译到运行全流程指南
VS2019CMake实战:Super4PCS点云配准从源码编译到运行全流程指南 在三维视觉和机器人领域,点云配准一直是核心难题之一。Super4PCS算法作为4PCS的改进版本,以其在低重叠率点云上的优异表现,成为工业检测和SLAM系统中的热门选择。本…...
OpenClaw语音交互方案:千问3.5-27B对接Whisper实现听写
OpenClaw语音交互方案:千问3.5-27B对接Whisper实现听写 1. 为什么需要语音交互自动化 上个月帮朋友整理一场3小时的行业访谈录音时,我对着逐字稿反复暂停播放、标记重点、提炼观点,整整花了6小时才完成笔记。这种机械劳动让我开始思考&…...
OpenClaw家庭作业助手:Qwen3-14B解析数学题并分步讲解
OpenClaw家庭作业助手:Qwen3-14B解析数学题并分步讲解 1. 为什么需要家庭作业助手? 作为一个经常辅导孩子功课的家长,我深刻体会到传统辅导方式的痛点。每天晚上检查作业时,孩子遇到不会的题目需要等待家长解答,而家…...
小米笔记本Pro双固态硬盘实战:Win11与Ubuntu22.04双系统完美共存指南
1. 为什么选择双固态硬盘装双系统? 最近给小米笔记本Pro加装第二块NVMe固态硬盘的朋友越来越多,我自己也刚在2023款小米Pro上实现了Win11和Ubuntu22.04的双系统共存。相比传统单硬盘分区方案,双物理硬盘隔离安装有几个明显优势: 首…...
利用drawio高效绘制数据库ER图:从入门到精通
1. 为什么选择drawio绘制数据库ER图 第一次接触数据库设计时,我被各种专业工具的价格和复杂度吓退了。直到发现drawio这个宝藏工具,才真正体会到什么叫"用最简单的工具做专业的事"。作为一款完全免费的跨平台工具,drawio不仅支持网…...
Skills一站式搜索、安装、管理工具,支持一键同步40款AI工具!
文章目录 📖 介绍 📖 🏡 演示环境 🏡 📒 Skill一站式搜索、安装、管理工具 📒 🔍 解决什么痛点 🚀 快速上手 🔄 功能一:迁移整理现有Skill 🔎 功能二:搜索安装Skill 🔔 功能三:同步分发到多工具 📋 支持的工具列表 ⚙️ 配置说明 🤔 优缺点分析 ⚓…...
UVM实战:RAL寄存器测试全流程详解(含代码示例)
UVM实战:RAL寄存器测试全流程详解(含代码示例) 在芯片验证领域,寄存器测试是确保硬件功能正确性的关键环节。UVM(Universal Verification Methodology)作为行业标准验证方法学,其内置的RAL&…...
Magisk Alpha深度隐匿实战:从Momo检测到BL列表的终极配置
1. 为什么需要深度隐匿Root环境? 最近两年,银行类APP和游戏厂商的检测手段越来越严格。我去年用某银行APP时,明明Root已经隐藏得很好,结果转账时突然弹出"设备环境异常"的提示,直接中断交易。后来才知道是新…...
G3810,G2810,TS3380,MP288,E568,TS3480,MG3680,IP4800,MX328,IX6580,MG7780清零软件,5B00,P07,E08,亲测软件好用,好评。
下载:点这里下载 备用:链接:https://pan.baidu.com/s/1j7Nwv715wX1JL3qidnGyXA?pwd0000 常见型号如下: G系列 G1000、G1100、G1200、G1400、G1500、G1800、G1900、G1010、G1110、G1120、G1410、G1420、G1411、G1510、G1520、G1810、G182…...
量子机器学习实战:在快马平台使用qorder构建分类器解决真实问题
量子机器学习听起来像是科幻小说里的概念,但借助qorder框架和InsCode(快马)平台,我们完全可以动手实践一个真实的量子分类器项目。最近我用这个组合解决了一个简单的二分类问题,整个过程比想象中顺畅许多,下面分享具体实现思路和关…...
