计算机考研复试机试-考前速记
考前速记 知识点
1. 链表篇
1. 循环链表报数3,输出最后一个报数编号
#include <iostream>
using namespace std;typedef struct Node {int no;struct Node* next;
}Node, *NodeList;void createNodeListTail(NodeList&L, int n) {L = (Node*)malloc(sizeof(Node));L->no = -1;L->next = NULL;Node* tail = L;for (int i = 0; i < n; i++) {Node* x = (Node*)malloc(sizeof(Node));x->no = (i + 1);x->next = NULL;tail->next = x;tail = x;}tail->next = L->next; // 形成循环链表return;
}int main() {int n;cin >> n;NodeList L;createNodeListTail(L, n);Node* pre = L; // 记录退出序号的前驱Node *p = pre->next;int LastNo = -1; // 记录每次退出的序号int count = 0; // 记录删除的结点个数while (count < n) {int i = 1;while (i < 3) {pre = p;p = p->next;i++;}Node* q = p; // 出队LastNo = q->no;pre->next = q->next;p = pre->next;free(q);count++;}cout << LastNo << endl;return 0;
}
2. 链表基本操作
#include <iostream>
#include <vector>
using namespace std;typedef struct LNode {int data;struct LNode* next;
}LNode, *LinkList;// 头插法建立链表
void createLinkListHead(LinkList &L, int n) {L = (LNode*)malloc(sizeof(LNode));L->data = -1;L->next = NULL;for (int i = 0; i < n; i++) {int data;cin >> data;LNode* x = (LNode*)malloc(sizeof(LNode));x->data = data;x->next = L->next;L->next = x;}
}// 删除第n个位置的元素
bool deleteN(LinkList& L, int n) {int count = 1;LNode* pre = L;LNode* p = pre->next;while (p) {if (count == n) {LNode* q = p;pre->next = q->next;p = pre->next;free(q);cout << "delete OK" << endl;return true;}else {pre = pre->next;p = p->next;}count++;}cout << "delete fail" << endl;return false;
}// 输出第n个位置元素
bool getN(LinkList L, int n) {int count = 1;LNode* p = L->next;while (p) {if (count == n) {cout << p->data << endl;return true;}p = p->next;count++;}cout << "get fail" << endl;return false;
}// 在第n个元素之后插入元素
bool insertBeforePOSN(LinkList& L, int pos, int data) {int count = 1;LNode* pre = L;LNode* p = pre->next;LNode* x = (LNode*)malloc(sizeof(LNode));if (p == NULL && pos == 1) { // 处理空链表插入x->data = data;x->next = NULL;L->next = x;cout << "insert OK" << endl;return true;}while (p) {if (count == pos) {x->data = data;x->next = p;pre->next = x;cout << "insert OK" << endl;return true;}else {pre = p;p = pre->next;}count++;}cout << "insert fail" << endl;return false;
}// 输出L
void showL(LinkList L) {LNode* p = L->next;if (p == NULL) {cout << "Link list is empty" << endl;return;}while (p) {cout << p->data << " ";p = p->next;}cout << endl;return;
}int main() {int n;cin >> n;LinkList L = (LNode*)malloc(sizeof(LNode));createLinkListHead(L, n);int m;cin >> m;vector<string> op(m);vector<int> param1(m);vector<int> param2(m);for (int i = 0; i < m; i++) {cin >> op[i];if (op[i] == "get" || op[i] == "delete") {cin >> param1[i];param2[i] = -1;}else if (op[i] == "insert") {cin >> param1[i] >> param2[i];}else if(op[i] == "show") {param1[i] = -1;param2[i] = -1;}}for (int i = 0; i < m; i++) {if (op[i] == "delete")deleteN(L, param1[i]);else if (op[i] == "get")getN(L, param1[i]);else if (op[i] == "insert")insertBeforePOSN(L, param1[i], param2[i]);else if (op[i] == "show")showL(L);}return 0;
}
2. vector & set
1. find方法
#include <vector>
#include <algorithm>
vector<int> arr;
auto it = find(arr.begin(), arr.end(), p->no);
if (it != arr.end()) {cout << it - arr.begin() << endl; // 获取下标//...
}
2. 一维数组,元素为[a, b]
vector<pair<int, int>> temp; // 记录感染的房间
temp.push_back({i, j});
for (int k = 0; k < temp.size(); k++) { int i = temp[k].first;int j = temp[k].second;//...
}
3. set去重
#include <iostream>
#include <algorithm>
#include <set>
using namespace std;int main() {int arr[31] = { 0 };int n;cin >> n;for (int i = 0; i < n; i++)cin >> arr[i];sort(arr, arr + n);set <pair< int,int >> unique_pairs; // 定义setfor (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {if (i != j && unique_pairs.find({ arr[i], arr[j] }) == unique_pairs.end()) { // set查找cout << "(" << arr[i] << "," << arr[j] << ")" << endl;unique_pairs.insert({ arr[i], arr[j] }); // set插入}}}return 0;
}
3. 排序
1. 快速排序
#include <iostream>
using namespace std;int partition(int arr[], int left, int right) {int pivot = arr[left];while (left < right) {while (left<right && arr[right] >= pivot) right--;arr[left] = arr[right];while (left<right && arr[left] <= pivot) left++;arr[right] = arr[left];}arr[left] = pivot;return left;
}void QuickSort(int arr[], int left, int right) {if(left>=right) return;int mid = partition(arr, left, right);QuickSort(arr, left, mid - 1);QuickSort(arr, mid + 1, right);return;
}int main() {int arr[100];int n;cin >> n;for (int i = 0; i < n; i++)cin >> arr[i];QuickSort(arr, 0, n - 1);for (int i = 0; i < n; i++) cout << arr[i] << " ";cout << endl;return 0;
}
2. 归并排序
#include <iostream>
using namespace std;const int MAXN = 1e5 + 10;
int temp[MAXN];
int arr[MAXN];
void merge(int arr[], int left, int right) {for (int i = left; i <= right; i++)temp[i] = arr[i];int mid = (left + right) / 2;int i = left, j = mid + 1;int k = left; // 从left位置开始存储while (i <= mid && j <= right) {if (temp[i] <= temp[j])arr[k++] = temp[i++];elsearr[k++] = temp[j++];}while (i <= mid)arr[k++] = temp[i++];while (j <= right)arr[k++] = temp[j++];return;
}void mergeSort(int arr[], int left, int right) {if (left >= right) return;int mid = (left + right) / 2;mergeSort(arr, left, mid); // 对左边递归mergeSort(arr, mid + 1, right); // 对右边递归merge(arr, left, right); // 归并
}
int main() {int n;cin >> n;for (int i = 0; i < n; i++)cin >> arr[i];mergeSort(arr, 0, n - 1);for (int i = 0; i < n; i++)cout << arr[i] << " ";cout << endl;return 0;
}
3. 希尔排序
#include <iostream>
using namespace std;const int MAXN = 1e5 + 10;
int arr[MAXN];void printArr(int arr[], int n) {for (int i = 0; i < n; i++)cout << arr[i] << " ";cout << endl;
}void insertSort(int arr[], int n, int dk) {for (int i = dk; i < n; i++) { // dk:n-1int k = arr[i];int j;for (j = i - dk; j >= 0; j -= dk) {if (arr[j] > k)arr[j + dk] = arr[j];elsebreak;}arr[j + dk] = k;}return;
}void shellSort(int arr[], int n) {for (int dk = n / 2; dk >= 1; dk /= 2){insertSort(arr, n, dk%2==0?dk+1:dk);printArr(arr, n);}return;
}int main() {int n;cin >> n;for (int i = 0; i < n; i++)cin >> arr[i];shellSort(arr, n);return 0;
}
4. 折半插入排序
#include <iostream>
using namespace std;void insertSort(int arr[], int n) {for (int i = 2; i <= n; i++) {arr[0] = arr[i]; // 待排元素int left = 1, right = i - 1;while (left <= right) { // 找位置int mid = (left + right) / 2;if (arr[mid] <= arr[0])left = mid + 1;elseright = mid - 1;}// 位置(含)之后元素后移for (int j = i - 1; j >= left; j--)arr[j + 1] = arr[j];// 插入待排元素arr[left] = arr[0];}return;
}
int arr[1000];
int main() {int n;cin >> n;for (int i = 1; i <= n; i++)cin >> arr[i];insertSort(arr, n);for (int i = 1; i <= n; i++)cout << arr[i] << " ";cout << endl;return 0;
}
5. 堆排序
#include <iostream>
using namespace std;void HeapAdjust(int arr[], int k, int len) {arr[0] = arr[k]; // 存储待排元素for (int i = k * 2; i <= len; i = 2 * i) { // 不停下坠找到存放arr[0]的位置if (i < len&& arr[i] < arr[i + 1])i++;if (arr[0] > arr[i])break;else {arr[k] = arr[i];k = i;}}arr[k] = arr[0]; // 放置待排元素return;
}void BuildMaxHeap(int arr[], int len) { // 建立大根堆for (int i = len / 2; i > 0; i--)HeapAdjust(arr, i, len);
}void swap(int& a, int& b) {int t = a;a = b;b = t;return;
}void HeapSort(int arr[], int len) {BuildMaxHeap(arr, len); // 建堆while (len > 1) {swap(arr[1], arr[len--]);HeapAdjust(arr, 1, len);}//for (int i = len; i > 1; i--) {// swap(arr[1], arr[i]); // 交换arr[1] 和 arr[len--] // HeapAdjust(arr, 1, i - 1); // 重新调整堆//}return;
}const int MAXN = 1e5 + 10;
int arr[MAXN];int main() {int n;cin >> n;for (int i = 1; i <= n; i++)cin >> arr[i];HeapSort(arr, n);for (int i = 1; i <= n; i++)cout << arr[i] << " ";cout << endl;return 0;
}
4. 数学
1. 质数
#include <iostream>
using namespace std;const int MAXN = 1000;
bool isPrime[MAXN];void init() {for (int i = 0; i < MAXN; i++)isPrime[i] = true; // 初始化都是质数isPrime[0] = false;isPrime[1] = false;for (int i = 2; i < MAXN; i++) {if (isPrime[i] == false)continue;// i是质数for (int k = i*i; k < MAXN; k += i) {isPrime[k] = false; // 质数的倍数不是质数}}
}int main() {int n;cin >> n;init();for (int i = 0; i <= n; i++)if (isPrime[i])cout << i << endl;return 0;
}
2. double小数问题
#include <iostream>
#include <iomanip> // ***
using namespace std;int main() {int n;cin >> n;double sum = 0;for (int i = 1; i <= n; i++) sum += double(1.0 / i); // ** 1.0/icout << fixed << setprecision(6) << sum << endl; // ***return 0;
}
3. ip转16进制输出
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;int main() {int a, b, c, d;scanf("%d.%d.%d.%d", &a, &b, &c, &d);bool isFlag = true; // 输入是否合法if (a > 255 || b > 255 || c > 255 || d > 255)isFlag = false;if(a<0||b<0||c<0||d<0)isFlag = false;if(getchar() != '\n')isFlag = false;if (isFlag == false)printf("Error\n");elseprintf("0x%02X%02X%02X%02X", a, b, c, d); // printf("%4o %2X\n", num, num); // 输出8进制 16进制return 0;
}
4. 快速幂
#include <iostream>
using namespace std;int main() {long x, n;cin >> x >> n;int mod = 233333;long long res = 1;while (n != 0) {if (n % 2 == 1)res = (res * x) % mod;x = (x * x) % mod;n /= 2;}cout << res << endl;return 0;
}
5. 字符转数字 数字转字符
char c;
int n;
int num = c - '0';
char cc = n + '0';
string str="1234";
int num = stoi(str);
5.动态规划
1. 放苹果
#include <iostream>
#include <cstring>
using namespace std;int main() {int dp[13][13] = { 0 };int count;cin >> count;while (count--) {int m, n; // dp[m][n] m个苹果放入n个盘子cin >> m >> n;memset(dp, 0, 13 * 13);for (int i = 0; i <= m; i++) {dp[i][1] = 1; // 一个盘子只有1种方法放苹果}for (int i = 1; i <= n; i++) { // 至少一个盘子 从1开始遍历dp[0][i] = 1; // 0/1个苹果只有一种dp[1][i] = 1;}for (int i = 2; i <= m; i++) {for (int j = 2; j <= n; j++) {if (i >= j) { // 苹果大于等于盘子dp[i][j] = dp[i][j - 1] + dp[i - j][j];}else { // 苹果数量小于盘子 取决苹果dp[i][j] = dp[i][i];}}}cout << dp[m][n] << endl;}return 0;
}
2. 最长公共子序列长度
#include <iostream>
#include <algorithm>
using namespace std;int dp[1010][1010];int main() {string str1, str2;cin >> str1 >> str2;int m = str1.size(), n = str2.size();// dp[i][j] str1的前i个元素 str2的前j个元素的最大公共长度for (int i = 0; i <= m; i++) {dp[i][0] = 0;}for (int i = 0; i <= n; i++) {dp[0][i] = 0;}for (int i = 1; i <= m; i++) {for (int j = 1; j <= n; j++) {if (str1[i-1] == str2[j-1])// str1[0, i-1] str2[0, j-1] ij元素取决于前0~i-1 0~j-1个元素dp[i][j] = dp[i - 1][j - 1] + 1;elsedp[i][j] = max(dp[i][j-1], dp[i-1][j]);}}cout << dp[m][n] << endl;return 0;
}
3. 最长连续公共序列 不含数字 只统计小写字母
#include <iostream>
#include <string>
#include <algorithm>using namespace std;int dp[1010][1010];
int main() {string str1, str2;cin >> str1 >> str2;int m = str1.size(), n = str2.size();// dp[i][j] str1前i个元素和str2前j个元素的最长连续字串长度for (int i = 0; i <= m; i++) dp[i][0] = 0;for (int i = 0; i <= n; i++)dp[0][i] = 0;int curmax = 0; // 记录当前最长连续子串长度for (int i = 1; i <= m; i++) {for (int j = 1; j <= n; j++) {if (str1[i - 1] >= 'a' && str1[i - 1] <= 'z' && str1[i - 1] == str2[j - 1]) {// 右边缘相等为条件dp[i][j] = dp[i - 1][j - 1] + 1;curmax = max(dp[i][j], curmax);}elsedp[i][j] = 0;}}cout << curmax << endl;return 0;
}
4. 最大连续序列和
#include <iostream>
#include <algorithm>using namespace std;
int dp[1000];
int arr[1000];int main() {int n;cin >> n;for (int i = 0; i < n; i++)cin >> arr[i];dp[1] = arr[0];int curmax = dp[1];for (int i = 2; i <= n; i++) {if (dp[i - 1] > 0) // 前i-1个元素的连续序列和dp[i] = dp[i - 1] + arr[i-1]; // dp[i]代表前i个元素的连续序列和 arr[i-1] 代表第i个元素elsedp[i] = arr[i-1];curmax = max(dp[i], curmax);}cout << curmax << endl;return 0;
}
5. 最长递增子序列长度(非连续)
#include <iostream>
#include <algorithm>
using namespace std;const int MAXN = 1000 + 10;
int arr[MAXN];
int dp[MAXN];
int main() {int n;cin >> n;for (int i = 0; i < n; i++)cin >> arr[i];for (int i = 1; i <= n; i++) // 初始化 dp[i]都是1dp[i] = 1;int curmax = dp[1];for (int i = 1; i <= n; i++) {for (int j = 1; j <= i; j++) { // 第i个元素 与 前面的第j个元素比较 [i.....j] if (arr[i - 1] > arr[j - 1]) { // 第i个元素 > 第j个元素dp[i] = max(dp[j] + 1, dp[i]); // 刷新dp[i]的值curmax = max(dp[i], curmax);}}}cout << curmax << endl;return 0;
}
6. 01背包
#include <iostream>
#include <algorithm>
using namespace std;int dp[5001][202]; // 200个元素下标
int main() {int m, n; //01背包重量m n组数据 m[1, 5000]int w[202] = { 0 }, v[202] = { 0 }; // 每个物品的重量以及价值 [1, 200]cin >> m >> n;for (int i = 0; i < n; i++) // 输入n个物品的信息cin >> w[i] >> v[i];for (int i = 0; i <= m; i++) // 没有物品 价值0dp[i][0] = 0;for (int i = 0; i < n; i++) // 背包没有容纳重量 价值0dp[0][i] = 0;for (int i = 1; i <= m; i++) {for (int j = 1; j <= n; j++) {if (i < w[j - 1]) {// 如果背包剩余容量无法容纳第j件物品 返回前j-1物品的【value】dp[i][j] = dp[i][j - 1]; // dp[i][j-1] 代表i重量,前j-1件物品的价值 实际物品下标[0, j-2]}else {int remainM = i - w[j - 1]; // dp[remainM][j - 1] 买了第y件商品后剩下的钱用于买剩下的y-1件商品dp[i][j] = max(dp[i][j - 1], dp[remainM][j - 1] + v[j - 1]); // 前j-1的结果+第j件物品的价值// 不买第y件商品的价值 与 买第y件商品之后的价值对比 。。。剩下的钱不一定买的起前面j-1件商品}}}cout << dp[m][n] << endl;return 0;
}
6. 回溯
1. 组合
#include <iostream>
#include <vector>
using namespace std;
int choosen[100];
vector<int> res;void backTracking(int n, int k, int startIndex) {if (res.size() == k) {for (int i = 0; i < res.size(); i++)cout << res[i] << " ";cout << endl;return;}for (int i = startIndex; i <= n; i++) {if (choosen[i])continue;choosen[i] = 1;res.push_back(i);backTracking(n, k, i + 1); // 第三个参数:0 全排列, i+1递增集合(元素不可重复)res.pop_back();choosen[i] = 0;}
}int main() {int n;cin >> n;backTracking(n, 2, 1);return 0;
}
2. 全排列输出字母
#include <iostream>
#include <vector>
using namespace std;bool choosen[100];
vector<char> res;void backTracking(string str, int n, int startIdx) {if (res.size() == n) {for (int i = 0; i < res.size(); i++) cout << res[i];cout << endl;}for (int i = startIdx; i < n; i++) {if (choosen[i])continue;choosen[i] = true;res.push_back(str[i]);backTracking(str, n, 0);res.pop_back();choosen[i] = false;}return;
}int main() {string str;cin >> str;backTracking(str, str.size(), 0);return 0;
}
2024真题
1. 直接插入排序 第k趟结果
#include <iostream>
using namespace std;const int MAXN = 1010;
int arr[MAXN];void InsertSort(int arr[], int &n, int k) { // 输出插入排序第k趟排序for (int i = 1; i < n && i<k; i++) {int temp = arr[i]; // 当前待排元素int j;for (j = i - 1; j >= 0; j--) { // 对[0, i-1]元素排序if (arr[j] > temp) // 后移arr[j + 1] = arr[j];elsebreak;}arr[j + 1] = temp;}for (int i = 0; i < n; i++)cout << arr[i] << " ";cout << endl;return;
}
int main() {int k, x;cin >> k;int n = 0;while (cin >> x)arr[n++] = x;InsertSort(arr, n, k);return 0;
}
2. 最大连续序列和
#include <iostream>
#include <algorithm>
using namespace std;int arr[1010];
int dp[1010];
int main() {int n;cin >> n;for (int i = 0; i < n; i++)cin >> arr[i];dp[1] = arr[0]; // dp[i] 前i个数的序列和int curmax = dp[1];for (int i = 2; i <=n; i++) { // 处理dp[n]if (dp[i - 1] <= 0)dp[i] = arr[i - 1]; // arr[i-1] 指代第i个元素 arr范围[0, i-1] // 前i个元素elsedp[i] = dp[i - 1] + arr[i - 1];curmax = max(curmax, dp[i]);}cout << curmax << endl;return 0;}
3. 动态规划-多组数据,输入餐馆位置,餐馆需指定间隔距离, 餐馆利润,计算最大利润
#include <iostream>
using namespace std;int main() {int n; // n组数据cin >> n;int p[101]; // 位置int v[101]; // 利润int dp[102]; // dp[i] 前i个元素的结果while (n--) {int posN, dis; // 店铺数 间隔距离cin >> posN >> dis;for (int i = 0; i < posN; i++) // 输入店铺位置cin >> p[i]; for (int i = 0; i < posN; i++) // 输入店铺对应位置的利润cin >> v[i]; dp[1] = v[0]; // 只有一个餐馆int curmax = dp[1];for (int i = 2; i <= posN; i++) {if (p[i - 1] - p[i - 2] >= dis) // 第i个地点与前一个地点相差距离需要满足disdp[i] = dp[i - 1] + v[i - 1];else dp[i] = max(dp[i-1], v[i-1]);curmax = max(dp[i], curmax);}cout << curmax << endl;}return 0;
}
4. 找到第k个素数
#include <iostream>
#include <vector>using namespace std;const int MAXN = 1010;
bool isPrime[MAXN]; // 记录0-1000 是否是素数
vector<int> prime; // 存入素数void init() {for (int i = 0; i < MAXN; i++)isPrime[i] = true;isPrime[0] = false;isPrime[1] = false;for (int i = 2; i < MAXN; i++) {if (isPrime[i] == false)continue;prime.push_back(i);for (int k = i * i; k < MAXN; k += i) // 质数的倍数 不是质数isPrime[k] = false;}
}int main() {init();int n;cin >> n;if (isPrime[n]) {cout << true << endl;}else {for (int i = n + 1; i < MAXN; i++)if (isPrime[i]) {cout << i << endl;break;} }return 0;
}
5.中缀表达式转后缀表达式
#include <iostream>
#include <string>
#include <vector>
using namespace std;bool isOperator(char c) {return c == '+' || c == '-' || c == '*' || c == '/' || c == '(' || c == ')';
}bool isAbleOut(vector<char> stackArr, char c) {int tail = stackArr.size()-1;if (c == '(')return false;if (c == ')' && stackArr[tail] != '(')return true;if (stackArr[tail] != '(') if (c == '+' || c == '-')return true;else if (stackArr[tail] == '*' || stackArr[tail] == '/')return true;return false;
}int main() {string str;cin >> str;vector<char> stackArr;string res;for (int i = 0; i < str.size(); i++) {if (isOperator(str[i]) == false)res += str[i];else {while (stackArr.size() && isAbleOut(stackArr, str[i])) {int tail = stackArr.size()-1;res += stackArr[tail];stackArr.pop_back();} if (str[i] != ')')stackArr.push_back(str[i]);else// 右括号时 直到结束时, stack需要弹出(stackArr.pop_back();}}for (int i = stackArr.size() - 1; i >= 0; i--)res += stackArr[i];cout << res << endl;return 0;
}
相关文章:
计算机考研复试机试-考前速记
考前速记 知识点 1. 链表篇 1. 循环链表报数3,输出最后一个报数编号 #include <iostream> using namespace std;typedef struct Node {int no;struct Node* next; }Node, *NodeList;void createNodeListTail(NodeList&L, int n) {L (Node*)malloc(siz…...
【漏洞复现】Next.js中间件权限绕过漏洞 CVE-2025-29927
什么是Next.js? Next.js 是由 Vercel 开发的基于 React 的现代 Web 应用框架,具备前后端一体的开发能力,广泛用于开发 Server-side Rendering (SSR) 和静态站点生成(SSG)项目。Next.js 支持传统的 Node.js 模式和基于边…...
路由选型终极对决:直连/静态/动态三大类型+华为华三思科配置差异,一张表彻底讲透!
路由选型终极对决:直连/静态/动态三大类型华为华三思科配置差异,一张表彻底讲透! 一、路由:互联网世界的导航系统二、路由类型深度解析三者的本质区别 三、 解密路由表——网络设备的GPS华为(Huawei)华三&a…...
【AI】知识蒸馏-简单易懂版
1 缘起 最近要准备升级材料,里面有一骨碌是介绍LLM相关技术的,知识蒸馏就是其中一个点, 不过,只分享了蒸馏过程,没有讲述来龙去脉,比如没有讲解Softmax为什么引入T、损失函数为什么使用KL散度,…...
uniapp运行到支付宝开发者工具
使用uniapp编写专有钉钉和浙政钉出现的样式问题 在支付宝开发者工具中启用2.0构建的时候,在开发工具中页面样式正常 但是在真机调试和线上的时候不正常 页面没问题,所有组件样式丢失 解决 在manifest.json mp-alipay中加入 "styleIsolation&qu…...
STM32学习笔记之keil使用记录
📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…...
卷积神经网络 - 参数学习
本文我们通过两个简化的例子,展示如何从前向传播、损失计算,到反向传播推导梯度,再到参数更新,完整地描述卷积层的参数学习过程。 一、例子一 我们构造一个非常简单的卷积神经网络,其结构仅包含一个卷积层和一个输出…...
【加密社】币圈合约交易量监控,含TG推送
首先需要在币安的开发者中心去申请自己的BINANCE_API_KEY和BINANCE_API_SECRET 有了这个后,接着去申请一个TG的机器人token和对话chatid 如果不需要绑定tg推送的话,可以忽略这步 接下来直接上代码 引用部分 from os import system from binance.c…...
大模型概述
大模型属于Foundation Model(基础模型)[插图],是一种神经网络模型,具有参数量大、训练数据量大、计算能力要求高、泛化能力强、应用广泛等特点。与传统人工智能模型相比,大模型在参数规模上涵盖十亿级、百亿级、千亿级…...
【CSS3】完整修仙功法
目录 CSS 基本概念CSS 的定义CSS 的作用CSS 语法 CSS 引入方式内部样式表外部样式表行内样式表 选择器基础选择器标签选择器类选择器id 选择器通配符选择器 画盒子文字控制属性字体大小字体粗细字体倾斜行高字体族font 复合属性文本缩进文本对齐文本修饰线文字颜色 复合选择器后…...
C++ 的 if-constexpr
1 if-constexpr 语法 1.1 基本语法 if-constexpr 语法是 C 17 引入的新语法特性,也被称为常量 if 表达式或静态 if(static if)。引入这个语言特性的目的是将 C 在编译期计算和求值的能力进一步扩展,更方便地实现编译期的分支…...
【电气设计】接地/浮地设计
在工作的过程中,遇到了需要测量接地阻抗的情况,组内讨论提到了保护接地和功能接地的相关需求。此文章用来记录这个过程的学习和感悟。 人体触电的原理: 可以看到我们形成了电流回路,导致触电。因此我们需要针对设备做一些保护设计…...
Gone v2 配置管理3:连接 Nacos 配置中心
🚀 发现 gone-io/gone:一个优雅的 Go 依赖注入框架!💻 它让您的代码更简洁、更易测试。🔍 框架轻量却功能强大,完美平衡了灵活性与易用性。⭐ 如果您喜欢这个项目,请给我们点个星!&a…...
深度强化学习中的深度神经网络优化策略:挑战与解决方案
I. 引言 深度强化学习(Deep Reinforcement Learning,DRL)结合了强化学习(Reinforcement Learning,RL)和深度学习(Deep Learning)的优点,使得智能体能够在复杂的环境中学…...
浅拷贝与深拷贝
浅拷贝和深拷贝是对象复制中的两种常见方式,它们在处理对象的属性时有本质的区别。 一. 浅拷贝(Shallow Copy) 浅拷贝是指创建一个新对象,然后将当前对象的非静态字段复制到新对象中。如果字段是值类型的,那么将复制字…...
macOS 安装 Miniconda
macOS 安装 Miniconda 1. Quickstart install instructions2. 执行3. shell 上初始化 conda4. 关闭 终端登录用户名前的 base参考 1. Quickstart install instructions mkdir -p ~/miniconda3 curl https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh -o…...
分布式限流方案:基于 Redis 的令牌桶算法实现
分布式限流方案:基于 Redis 的令牌桶算法实现 前言一、原理介绍:令牌桶算法二、分布式限流的设计思路三、代码实现四、方案优缺点五、 适用场景总结 前言 在分布式场景下,接口限流变得更加复杂。传统的单机限流方式难以满足跨节点的限流需求…...
OpenHarmony子系统开发 - 电池管理(二)
OpenHarmony子系统开发 - 电池管理(二) 五、充电限流限压定制开发指导 概述 简介 OpenHarmony默认提供了充电限流限压的特性。在对终端设备进行充电时,由于环境影响,可能会导致电池温度过高,因此需要对充电电流或电…...
Cocos Creator版本发布时间线
官网找不到,DeepSeek给的答案,这里做个记录。 Cocos Creator 1.x 系列 发布时间:2016 年 - 2018 年 1.0(2016 年 3 月): 首个正式版本,基于 Cocos2d-x 的 2D 游戏开发工具链,集成可…...
修形还是需要再研究一下
最近有不少小伙伴问到修形和蜗杆砂轮的问题,之前虽然研究过一段时间,但是由于时间问题放下了,最近想再捡起来。 之前计算的砂轮齿形是一整段的,但是似乎这种对于有些小伙伴来说不太容易接受,希望按照修形的区域进行分…...
Java面试黄金宝典11
1. 什么是 JMM 内存模型 定义 JMM(Java Memory Model)即 Java 内存模型,它并非真实的物理内存结构,而是一种抽象的概念。其主要作用是规范 Java 虚拟机与计算机主内存(Main Memory)之间的交互方式&#x…...
华为p10 plus 鸿蒙2.0降级emui9.1.0.228
需要用到的工具 HiSuite Proxy V3 华为手机助手11.0.0.530_ove或者11.0.0.630_ove应该都可以。 官方的通道已关闭,所以要用代理,127.0.0.1端口7777 https://www.firmfinder.ml/ https://professorjtj.github.io/v2/ https://hisubway.online/articl…...
高速开源镜像站网址列表2503
高速开源镜像站网址列表 以下是国内常用的高速开源镜像站网址列表,涵盖企业和教育机构的主要站点,适用于快速下载开源软件和系统镜像: 一、企业镜像站 阿里云镜像站 地址:https://mirrors.aliyun.com/ 特点:覆盖广泛…...
Python----计算机视觉处理(Opencv:绘制图像轮廓:寻找轮廓,findContours()函数)
一、轮廓 轮廓是图像中目标物体或区域的外部边界线或边界区域,由一系列相连的像素构成封闭形状,代表了物体的基本外形。与边缘不同,轮廓是连续的,而边缘则不一定是连续的。 轮廓与边缘的区别: 轮廓是一组连续的点或线…...
python --face_recognition(人脸识别,检测,特征提取,绘制鼻子,眼睛,嘴巴,眉毛)/活体检测
dlib 安装方法 之前博文 https://blog.csdn.net/weixin_44634704/article/details/141332644 环境: python==3.8 opencv-python==4.11.0.86 face_recognition==1.3.0 dlib==19.24.6人脸检测 import cv2 import face_recognition# 读取人脸图片 img = cv2.imread(r"C:\U…...
【测试工具】如何使用 burp pro 自定义一个拦截器插件
在 Burp Suite 中,你可以使用 Burp Extender 编写自定义拦截器插件,以拦截并修改 HTTP 请求或响应。Burp Suite 支持 Java 和 Python (Jython) 作为扩展开发语言。以下是一个完整的流程,介绍如何创建一个 Burp 插件来拦截请求并进行自定义处理…...
51单片机和STM32 入门分析
51单片机和STM32是嵌入式开发中两种主流的微控制器,它们在架构、性能、应用场景等方面存在显著差异。以下是两者的对比分析及选择建议: 1. 51单片机与STM32的定义与特点 51单片机 定义:基于Intel 8051内核的8位微控制器,结构简单…...
python暴力破解html表单
import requests import time# 目标URL url "http://192.168.3.101/pikachu/vul/burteforce/bf_form.php" # 请替换为实际的目标URL# 已知的用户名 username "admin"# 密码字典文件路径 password_file "passwords.txt"# 伪造请求头ÿ…...
DeepSeek+RAG局域网部署
已经有很多平台集成RAG模式,dify,cherrystudio等,这里通过AI辅助,用DS的API实现一个简单的RAG部署。框架主要技术栈是Chroma,langchain,streamlit,答案流式输出,并且对答案加上索引。支持doc,docx,pdf,txt。…...
流影---开源网络流量分析平台(一)(小白超详细)
目录 流影介绍 一、技术架构与核心技术 二、核心功能与特性 流影部署 流影介绍 一、技术架构与核心技术 模块化引擎设计 流影采用四层模块化架构:流量探针(数据采集)、网络行为分析引擎(特征提取)、威胁检测引擎&…...
在IDEA中快速注释所有console.log
在IDEA中快速注释所有console.log 在前端IDEA中,快速注释所有console.log语句可以通过以下步骤实现2: 打开要修改的文件。使用快捷键CtrlF打开搜索框。点击打开使用正则搜索的开关或者通过AltR快捷键来打开。在搜索框输入[]*console.log[]*,…...
python全栈-前端
python全栈-前端 文章目录 HTML标签段落p、换行br、水平线hr图片img路径src超文本链接a超链接之锚点href#id文本有序列表ol无序列表ul自定义列表表格table表格属性单元格合并 表单Forminput标签HTML5新增type属性HTML5新增常用属性 实体字符块元素与行内元素/内联元素容器元素d…...
基于PySide6与pycatia的CATIA绘图文本批量处理工具开发实践
引言 在CAD软件二次开发领域,CATIA的自动化处理一直存在开发门槛高、接口复杂等痛点。本文基于Python生态,结合PySide6 GUI框架与pycatia接口库,实现了一套高效的绘图文本批量处理工具。该工具支持背景视图文本批量处理和交互式文本选择处理…...
Jenkins 集成 SonarQube 代码静态检查使用说明
环境准备 Jenkins 服务器 确保 Jenkins 已安装并运行(推荐 LTS 版本)。安装插件: SonarQube Scanner for Jenkins(用于集成 SonarQube 扫描)NodeJS Plugin(可选,用于 JavaScript 项目࿰…...
pytorch构建线性回归模型
仅仅用于自己记录pytorch学习记录 线性回归模型 (1)准备数据集 数据:三个数据x[x1,x2,x3] y[y1,y2,y3] import torch #线性回归,我们使用三组数据,分别是(1,2),(2,4&a…...
本地部署 LangManus
本地部署 LangManus 0. 引言1. 部署 LangManus2. 部署 LangManus Web UI 0. 引言 LangManus 是一个社区驱动的 AI 自动化框架,它建立在开源社区的卓越工作基础之上。我们的目标是将语言模型与专业工具(如网络搜索、爬虫和 Python 代码执行)相…...
skynet网络包库(lua-netpack.c)的作用解析
目录 网络包库(lua-netpack.c)的作用解析1. 数据包的分片与重组2. 网络事件处理3. 内存管理4. 数据打包与解包 动态库(.so)在 Lua 中的使用1. 编译为动态库2. Lua 中加载与调用(1) 加载模块(2) 核心方法(3) 使用示例 3. 注意事项 …...
XXL-Job 二次分片是怎么做的?有什么问题?怎么去优化的?
XXL-JOB二次分片机制及优化策略 二次分片实现原理 XXL-JOB的二次分片是在分片广播策略的基础上,由开发者自行实现的更细粒度数据拆分。核心流程如下: 初次分片:调度中心根据执行器实例数量(总分片数n)分配分片索引i&…...
零基础本地部署 ComfyUI+Flux.1 模型!5 分钟搭建远程 AI 绘图服务器(保姆级教程)
文章目录 前言1. 本地部署ComfyUI2. 下载 Flux.1 模型3. 下载CLIP模型4. 下载 VAE 模型5. 演示文生图6. 公网使用 Flux.1 大模型6.1 创建远程连接公网地址 7. 固定远程访问公网地址 前言 在如今这 AI 技术一路火花带闪电、疯狂往前冲的时代,图像生成模型那可不再是…...
ABC398题解
A 算法标签: 模拟 #include <iostream> #include <algorithm> #include <cstring>using namespace std;const int N 110;int main() {ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);int n;cin >> n;string res;if (n % 2) {int mid n / 2;f…...
数据通信——计算机基础
通信系统的组成 通信系统是指从一个地方向另外一个地方传递和交换信息,实现信息传递所需的一切技术设备和传输媒体的总和。通信系统一般由信源、发送设备、信道、接收设备、信宿以及噪声源组成,以下是各部分的具体介绍: 信源 信源是产生各…...
量子计算与人工智能的融合:下一代算力革命
1. 引言:算力需求的飞速增长与量子计算的潜力 在信息技术飞速发展的今天,人工智能(AI)已经渗透到我们生活的方方面面,从智能助手到自动驾驶,再到医疗诊断,AI 的应用场景日益广泛。然而…...
神经网络解决非线性二分类
这份 Python 代码实现了一个简单的神经网络,用于解决复杂的非线性二分类问题。具体步骤包含生成数据集、定义神经网络模型、训练模型、测试模型以及可视化决策边界。 依赖库说明 python import numpy as np import matplotlib.pyplot as plt from sklearn.datase…...
nuxt3网站文章分享微信 ,QQ功能
1.安装 npm install qrcode --save-dev 2.组件使用 <div class"share"><div style"line-height: 69px; color: #fff;width: 100px;"><p style"text-align: center;">分享:</p></div><div click"shareToMi…...
深入理解Spring框架:核心概念与组成剖析
引言 在Java企业级开发领域,Spring框架无疑是当之无愧的王者。自2003年首次发布以来,Spring凭借其强大的功能、高度的灵活性和卓越的扩展性,已成为构建大型企业应用程序的首选框架。本文将深入探讨Spring框架的核心概念与多样组成部分&#…...
Ubuntu22.04美化MacOS主题
安装Tweaks 参考Ubuntu 22.04 桌面美化成Mac风格这篇更好点 sudo apt install gnome-tweaks gnome-shell-extensions -y安装macos主题 git clone https://github.com/vinceliuice/WhiteSur-gtk-theme.git # 进到文件目录 ./install.sh -t all -N glassy sudo ./tweaks.sh -g…...
MySQL: 创建两个关联的表,用联表sql创建一个新表
MySQL: 创建两个关联的表 建表思路 USERS 表:包含用户的基本信息,像 ID、NAME、EMAIL 等。v_card 表:存有虚拟卡的相关信息,如 type 和 amount。关联字段:USERS 表的 V_CARD 字段和 v_card 表的 v_card 字段用于建立…...
JavaScript 中for...in和for...of循环的原理区别,在遍历对象和数组时分别如何使用
大白话JavaScript 中for…in和for…of循环的原理区别,在遍历对象和数组时分别如何使用 嘿,朋友!咱来唠唠 JavaScript 里 for...in 和 for...of 这两种循环的事儿。它们就像是两个不同的小帮手,能帮你在对象和数组里溜达溜达&…...
图解AUTOSAR_SWS_WatchdogInterface
AUTOSAR Watchdog Interface (WdgIf) 详解 AUTOSAR经典平台看门狗接口模块技术详解 目录 1. 概述 1.1 WdgIf模块的作用1.2 WdgIf在AUTOSAR中的位置2. 架构设计 2.1 WdgIf架构概览2.2 接口设计2.3 序列设计3. 配置详解 3.1 配置参数3.2 配置结构3.3 配置类型4. 总结 4.1 主要特点…...
快速搭建yolo测试环境,超简明的神经网络训练说明书
1 快速搭建yolo测试环境 相对于更早的版本,v5是比较舒服的,直接把仓库拉下来就行,不用单独搞测试脚本和权重文件 $ git clone https://github.com/ultralytics/yolov5.git然后就是切到目录下安装依赖的第三方库: $ cd yolov5 $…...