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

011数论——算法备赛

素数筛

给定n, 求2~n内的所有素数

埃氏筛

利用素数的定义,

  1. 输出素数2,然后筛掉2的倍数,得 {2,3,5,7,9,11,13,…}
  2. 输出素数3,然后筛掉3的倍数,得 {2,3,5,7,11,13,…}

继续上述步骤,直到队列为空。

int E_sieve(int n) {vector<bool>fat(n+1,false);vector<int>tr(n);int s=0;for(int i=2;i<=sqrt(n);i++){  //筛选非负数if(!fat[i])for(int j=i*i;j<=n;j+=i) fat[j]=true;  //标记为非素数}for(int i=2;i<=n;i++)if(!fat[i])  tr[s++]=i;return s;}

以【1,14】为例:

在这里插入图片描述

欧拉筛

欧拉筛是一种线性筛,是对埃氏筛的改进。

**原理:**一个合数肯定有一个最小质因数;让每个合数只被它的最小质因数筛选一次。

  1. 逐次检查2~n的所有数。第一个检查的是2,他是第一个素数。
  2. 当检查到第i个数时,利用求得的素数筛掉对应的合数x,而且是用x的最小质因数筛。
int prime[N];
int euler_sieve(int n){int cnt=0;  //此时得到的素数数量bool vis[N];memset(vis,0,sizeof(vis));for(int i=2;i<=n;i++){  //i既在遍历时判断是否为素数,也充当筛选合数时的倍数。if(!vis[i]) prime[cnt++]=i;for(int j=0;j<cnt;j++){if(i*prime[j]>n) break;  //只筛小于等于n的数vis[i*prime[j]]=1;  //标记为筛除  循环中最少筛选1次,因为2是最小质数,合数的最小质因数>=2;if(i%prime[j]==0) break;//关键,此时下一个合数的最小质因数不是prime[j] 退出循环。//设i=prime[j]*t  i*prime[j+1]=prime[j]*t*prime[j+1]//说明下一个i*prime[j]的最小质因数不是prime[j];}}}

以【1,15】为例:
在这里插入图片描述

双子数

问题描述

若一个正整数能表示成(p2*q2)的形式(p,q为质数且互不相等)这称这个数为双子数,

求在[2333,2333333333333]范围内有多少个双子数?

原题链接

代码

#include<bits/stdc++.h>
#define ll long long
using namespace std;
vector<ll>dt;
void selve(ll n){  //欧拉筛,筛出所有平方*4小于23333333333333的质数unordered_set<ll>st;  //记录被筛除的数据int cnt=0;for(ll i=2;i<=n;i++){if(!st.count(i)) {dt.push_back(i);cnt++;}for(int j=0;j<cnt;j++){if(dt[j]*i>n) break;st.insert(dt[j]*i);if(i%dt[j]==0) break;}}
}
int main()
{// 请在此输入您的代码ll ans=0;ll t=sqrt(23333333333333/4);selve(t);  //筛选出小于t的所有素数int i=0,j=dt.size()-1;while(i<=j){int k=i+1;while(dt[i]*dt[i]*dt[k]*dt[k]<2333) k++;  //找下限while(dt[i]*dt[i]*dt[j]*dt[j]>23333333333333) j--;  //找上限if(j>=k) ans+=(j-k+1);  //dt[i]*dt[i]*dt[p]*dt[p]都满足范围约束,p属于[k,j];  k,j为i固定下的最小值与最大值i++;}cout<<ans;return 0;
}

质数拆分

问题描述

将2019拆分成若干个两两不同的质数的和,共有多少种不同的方案数?

注:交换顺序为同一种方案,如:2017+2=2019,与2+2017=2019为同种方案。

原题链接

代码

#include <iostream>
#include<vector>
#include<math.h>
#include<algorithm>
using namespace std;
int sum=0;
int cnt=0;
int main()
{// 请在此输入您的代码vector<int>data;vector<bool>vis(2020);vector<long long>dp(2020);dp[0]=1;for(int i=2;i<=2019;i++){if(!vis[i]) {data.push_back(i);cnt++;}for(int j=0;j<cnt;j++){if(i*data[j]>2019) break;vis[i*data[j]]=true;if(i%data[j]==0) break;}} /*dp[i]表示若干个data中的元素相加为i的组合数。特殊地,dp[0]=1;*/for(int i=0;i<cnt;i++){  //遍历ifor(int j=2019;j>=data[i];j--){  //每次以data[i]作为所选元素中最大值,确保不重复计算dp[j]+=dp[j-data[i]];  //更新若干个data元素相加为i的组合数}}cout<<dp[2019];return 0;
}

线性探测

求解前n个质数

前面的素数筛用于求解小于等于n的所有质数能在O(n)的时间复杂度内完成,那么求解前n个质数是否同样有高效率呢?

答案是没有,当求解前106个质数时,第106个质数大于10^7,复杂度约为O(10n),往后相差更大。此时用试除探测的方法会更好。

代码

vector<long long>d(1,2);
void sovle(int n){long long i=3; while(d.size()<n){int k=0;while(d[k]*d[k]<=i){if(i%d[k]==0){  //i是合数i+=2;k=1; //因为i是奇数,不用d[0]=2来试除。}else k++;}d.push_back(i);  //i是质数i+=2;  //偶数必定不是质数,每次加2,只探测奇数。}
}

分解因数

//质因数存储在pa[]中
void zs(int n)
{for(int j=2;j<=n;j++)while(n%j==0){pa.push_back(j);n/=j;}
}

分解质因数的一个应用是求整数的正因数个数。

因数个数定理:大于1的整数n的约数个数等于n的每个质因数的幂(指数)加一的累乘

对 n 进行质因数分解: n = p 1 a 1 ∗ p 2 a 2 ∗ p 3 a 3 ∗ . . . ∗ p s a s ( p s 为 n 的质因数 ) 对n进行质因数分解: n=p_1^{a_1}*p_2^{a_2}*p_3^{a_3}*...*p_s^{a_s}(ps为n的质因数) n进行质因数分解:n=p1a1p2a2p3a3...psas(psn的质因数)

n 的约数个数为 s u m = ∏ i = 1 s ( a i + 1 ) ; n的约数个数为 sum=\prod_{i=1}^{s}(a_i+1); n的约数个数为sum=i=1s(ai+1);

阶乘约数

蓝桥杯2020年国赛题

问题描述

求100!的约数个数。

原题链接

思路分析

前置知识:约数个数定理

因为任何一个正整数n都可以唯一分解为有限个素数的乘积,所以100!=p(1)*p(2)*p(3)*…p(100) p(x)为质因数分解式。

所以100!的因数个数为p(1)*p(2)*p(3)*…p(100) 中质因数的个数(指数)+1的累乘

统计每个p(i)中质因数的个数 最后在算总的即可

代码

#include<bits/stdc++.h>
using namespace std;int a[101]={0};//存储每个质数的个数  例a[2]=10 即质数2有10个(指数数为2)void zs(int n)
{for(int j=2;j<=n;j++)while(n%j==0){a[j]++;//若当前n中含有质数j,即将j存储到a数组中n/=j;}
}int main()
{long long num=1;//num的范围大for(int i=1;i<=100;i++)//统计每个质因数个数{zs(i);//可得当前数i含有的每个质数的个数}for(int i=1;i<=100;i++){if(a[i]!=0)num=num*(a[i]+1);//约数个数:等于它的质因数分解式中每个质因数的个数(即指数)加1的连乘的积。}cout<<num<<endl;return 0;
}

乘积尾0

问题描述

给定一个正整数数组,求数组中所有数相乘的结果末尾0的个数.

原题链接

思路分析

1.把每个数都拆成2的m次方乘以5的n次方再乘以一个常数的形式.该数的尾0数即为min(m,n)

2.所有拆分的数有a个2和b个5,那么会有min(a,b)个尾0.

统计所有数中的2的个数(指数)a 和5的个数(指数)b,最后结果就是min(a,b).

因为2和5互质,分解因数2不影响分解因数5.

代码

int Zerosum(vector<int>&arr){int a=0,b=0;for(int i=0;i<arr.size();i++){int k=arr[i];while(k%2==0){  //分解因数2k/=2;  a++;  //因数2的指数+1}while(k%5==0){  //分解因数5k/=5;b++;  //因数5的指数+1}}return min(a,b);
}

阶乘尾零

1*2*3*4*5*...*n当作一个整体看,只有5,10,15,20,25...含有因数5,定义这些乘数为因数5元子 且在整个阶乘式子中每个相邻的因数5元子中,都含有因数2元子与其配对。所以只需求因数5的个数即可。

原题链接

具体实现

代码中 n/5求当前因数5元子的个数,再对n/=5(相当于对所有的因数5元子降幂一次),重新计算当前因数5元子的个数,这个过程可用递归进行。

目前最优

代码

int trailingZeroes(int n) {return n==0?0:n/5+trailingZeroes(n/5);
}

丑数||

问题描述

给你一个整数 n ,请你找出并返回第 n丑数

丑数 就是质因子只包含 235 的正整数。

原题链接

思路分析

任何一个数都能唯一进行质因数分解,一个丑数必能分解成(2 ^i * 3 ^ j * 5^k)的形式(i,j,k为自然数)。

每次将上一阶段的丑数乘2或3或5,实现丑数的逐级递增

何时该乘2,何时乘3,何时乘5呢?

可以采用动态规划,每次将上一阶段求得的丑数储存起来当前阶段的丑数,为上一阶段的i,j,k指针对应的丑数分别乘2,3,5(分别记为num2,num3,num5)的最小值,同时让最小值对应的指针后移一位(保证下次求最小值时不是同一个数,实现丑数逐级递增)。

代码

int nthUglyNumber(int n) {vector<int> dp(n + 1);  //存储前面计算结果dp[1] = 1;int p2 = 1, p3 = 1, p5 = 1;  //p指针对应的是dp的下标for (int i = 2; i <= n; i++) {int num2 = dp[p2] * 2, num3 = dp[p3] * 3, num5 = dp[p5] * 5;dp[i] = min(min(num2, num3), num5);  //取三者最小值if (dp[i] == num2) p2++;if (dp[i] == num3) p3++;if (dp[i] == num5) p5++;}return dp[n];}

比特位计数

问题描述

给你一个整数 n ,对于 0 <= i <= n 中的每个 i ,计算其二进制表示中 1 的个数 ,返回一个长度为 n + 1 的数组 ans 作为答案。

原题链接

思路分析

每个数不是是偶数就是奇数:

  1. 奇数,二进制表示中,奇数一定比前面那个偶数多一个最低位的 1。
  2. 二进制表示中,偶数中 1 的个数一定和右移一位之后的那个数一样多。因为最低位是 0,右移一位就是把那个 0 抹掉而已,所以 1 的个数是不变的。

定义一个数组resres[i]存储了i的二进制表示的1的个数,从0n枚举,

枚举到i是奇数res[i] = res[i >> 1] + 1

枚举到i是偶数res[i] = res[i >> 1]

代码

vector<int> countBits(int n) 
{vector<int> res(n + 1, 0);for (int i = 0; i <= n; i++){res[i] = res[i >> 1] + (i & 1);}return res;
}

分解质因数求单个欧拉函数

int euler(int n){int ans=n;for(int p=2;p*p<=n;p++){  //试除法if(n%p==0){  ans=ans/p*(p-1);  //欧拉公式的通解while(n%p==0) n/=p;  //去掉这个因数的幂,并使下一个p是质因数。}}if(n!=1) ans=ans/n*(n-1);  //情况1,n是一个质数,没有执行上面的分解return ans;
}

优质数对的总数

问题描述

给你两个整数数组 nums1nums2,长度分别为 nm。同时给你一个正整数 k

如果 nums1[i] 可以被 nums2[j] * k 整除,则称数对 (i, j)优质数对0 <= i <= n - 1, 0 <= j <= m - 1)。

返回 优质数对 的总数。

原题链接

思路

为方便描述,把 nums1 和 nums2 简记作 ab

a[i] 能被 b[j]⋅k 整除,等价于 a[i] 是 k 的倍数且 a[i]/k 能被 b[j] 整除。

也就是说,a[i]/k 有一个因子 d 等于 b[j]。

  1. 遍历 a,枚举 a[i]/k的所有因子,统计到哈希表 cnt 中。比如遍历完后 cnt[3]=5,说明有 5 个 a[i]/k可以被 3 整除,等价于有 5 个 a[i] 可以被 3⋅k 整除。(因子为3的a[i]/k)有5个
  2. 遍历 b,把 cnt[b[j]] 加入答案。例如 b[j]=3,那么就找到了 cnt[3] 个优质数对。

代码

long long numberOfPairs(vector<int>& nums1, vector<int>& nums2, int k) {unordered_map<int, int> cnt;for (int x : nums1) {if (x % k) {continue;}x /= k;for (int d = 1; d * d <= x; d++) { // 枚举因子if (x % d) {continue;}cnt[d]++; // 统计因子if (d * d < x) {cnt[x / d]++; // 因子总是成对出现}}}long long ans = 0;for (int x : nums2) {ans += cnt.contains(x) ? cnt[x] : 0;}return ans;}
作者:灵茶山艾府

时间复杂度:O(n sqrt(U/k)+m),其中 n 是 nums 1的长度,m 是 nums 2的长度,U=max(nums 1 )。
空间复杂度:O(U/k)。不同因子个数不会超过 U/k

将元素分配给组

问题描述

给你一个整数数组 groups,其中 groups[i] 表示第 i 组的大小。另给你一个整数数组 elements

请你根据以下规则为每个组分配 一个 元素:

  • 如果 groups[i] 能被 elements[j] 整除,则元素 j 可以分配给组 i
  • 如果有多个元素满足条件,则分配下标最小的元素 j
  • 如果没有元素满足条件,则分配 -1 。

返回一个整数数组 assigned,其中 assigned[i] 是分配给组 i 的元素的索引,若无合适的元素,则为 -1。

**注意:**一个元素可以分配给多个组。

原题链接

思路分析

groups 中的最大值为 mx。我们直接预处理 1,2,3,…,mx 中的每个数能被哪个 elements[i] 整除。如果有多个相同的 elements[i],只考虑最左边的那个(i最小的那个)。

从左到右遍历 elements,设 x=elements[i]。枚举 x 的倍数 y(x,y都要小于mx),标记 y 可以被下标为 i 的元素整除,记作 target[y]=i。标记过的数字不再重复标记(保证获取的i为最小的)。

⚠注意:如果我们之前遍历过 x 的因子 d,那么不用枚举 x 的倍数,因为这些数必然已被 d 标记。

最后,回答询问,对于 groups[i]来说,答案为 target[groups[i]]

初始 target所有元素都为−1。

代码

vector<int> assignElements(vector<int>& groups, vector<int>& elements) {int mx = *max_element(groups.begin(),groups.end());vector<int> target(mx + 1, -1);for (int i = 0; i < elements.size(); i++) {int x = elements[i];if (x>mx||target[x] >= 0) { // x 及其倍数已被标记continue;}for (int y = x; y <= mx; y += x) { // 枚举 x 的倍数 yif (target[y] < 0) {target[y] = i; // 标记 y 可以被 x 整除}}}// 回答询问for (int& x : groups) {x = target[x]; // 原地修改}return groups;}

相关文章:

011数论——算法备赛

素数筛 给定n, 求2~n内的所有素数 埃氏筛 利用素数的定义&#xff0c; 输出素数2&#xff0c;然后筛掉2的倍数&#xff0c;得 {2,3,5,7,9,11,13&#xff0c;…}输出素数3&#xff0c;然后筛掉3的倍数&#xff0c;得 {2,3,5,7,11,13&#xff0c;…} 继续上述步骤&#xff0…...

C语言之机房机位预约系统

&#x1f31f; 嗨&#xff0c;我是LucianaiB&#xff01; &#x1f30d; 总有人间一两风&#xff0c;填我十万八千梦。 &#x1f680; 路漫漫其修远兮&#xff0c;吾将上下而求索。 C语言之机房机位预约系统 目录 博客&#xff1a;机房机位预约系统设计与实现 系统功能概述…...

中间件--ClickHouse-14--案例-3-其他案例思路概述

1、广告投放效果分析 案例背景&#xff1a; 一家广告平台需要分析广告的点击、曝光、转化等数据&#xff0c;以优化广告投放策略并提升 ROI&#xff08;投资回报率&#xff09;。 解决方案&#xff1a; 数据接入&#xff1a;将广告投放相关的数据&#xff08;如曝光、点击、…...

saas是什么?它做什么用的。及和Paas和laas有什么区别

Saas是什么&#xff1f;它做什么用的。及和Paas和laas有什么区别 提示&#xff1a;帮帮志会陆续更新非常多的IT技术知识&#xff0c;希望分享的内容对您有用。本章分享的是行业内容。前后每一小节的内容是存在的有&#xff1a;学习and理解的关联性&#xff0c;希望对您有用~ 文…...

Qt基础005(文件操作后续)

文章目录 QFileDialogQFileDialog打开开发案例QFileDialog保存开发案例实现文件打开功能开发流程打开功能优化 QComboBoxQListExtraSelection 简介 QFileDialog QFileDialog打开开发案例 #include <QApplication> #include <QFileDialog> #include <QStringLi…...

松灵Cobot Magic双臂具身遥操机器人(基于ROS的定位建图与协同导航技术)

摘要 本文以CobotMagic可移动协作机器人为研究对象&#xff0c;从硬件架构设计、软件系统架构、多传感器融合定位建图系统、智能导航系统协同机制四个维度&#xff0c;深入解析机器人系统工作原理。重点研究多传感器融合定位建图系统实现原理&#xff0c;结合实测数据验证系统…...

AI——神经网络以及TensorFlow使用

文章目录 一、TensorFlow安装二、张量、变量及其操作1、张量Tensor2、变量 三、tf.keras介绍1、使用tf.keras构建我们的模型2、激活函数1、sigmoid/logistics函数2、tanh函数3、RELU函数4、LeakReLu5、SoftMax6、如何选择激活函数 3、参数初始化1、bias偏置初始化2、weight权重…...

实现对象之间的序列化和反序列化

1.什么是序列化&#xff1f; 在项目的开发中&#xff0c;为了让前端更好的分析后端返回的结果&#xff0c;我们一般会将返回的信息进行序列化&#xff0c;序列化就是将返回对象的状态信息转换为一种标准化的格式&#xff0c;方便在网络中传输也方便打印日志时号观察&#xff0…...

QML中日期处理类

在 QML 中处理日期和时间主要使用 JavaScript 的 Date 对象以及 Qt 提供的一些相关功能。以下是常用的日期处理方式&#xff1a; 1. JavaScript Date 对象 QML 可以直接使用 JavaScript 的 Date 对象&#xff1a; qml // 创建当前日期时间 var currentDate new Date()// 创…...

基于docker-java封装的工具类

基于docker-java封装的工具类 背景环境工具类 背景 写OJ系统时需要用docker作为代码沙箱使用&#xff0c;顺手封装了一个工具类&#xff0c;给自己做个笔记&#xff0c;如果可以的话也希望帮助到其他人。 环境 docker 26.1.4docker-java 3.4.2docker-java-transport-httpcli…...

windows docker desktop 无法访问容器端口映射

为什么使用docker desktop访问映射的端口失败&#xff0c;而其端口对应的服务是正常的&#xff1f; 常见问题&#xff0c;容器的防火墙没有关闭&#xff01;&#xff01;&#xff01; 以centos7为例&#xff0c;默认情况下防火墙处于开启状态&#xff1a; 这下访问就OK了...

ReentrantReadWriteLock读写锁

一、锁的分类 这里不会对Java中大部分的分类都聊清楚&#xff0c;主要把 **互斥&#xff0c;共享** 这种分类聊清楚。 Java中的互斥锁&#xff0c;synchronized&#xff0c;ReentrantLock这种都是互斥锁。一个线程持有锁操作时&#xff0c;其他线程都需要等待前面的线程释放锁…...

Vue.js 入门教程

Vue.js 入门教程 Vue.js 是一款非常流行的前端 JavaScript 框架&#xff0c;适用于构建用户界面。它的设计思想是尽可能简单、灵活&#xff0c;易于与其他库或现有项目整合。本文将从最基础的概念开始&#xff0c;逐步引导你学习 Vue.js。 一、Vue.js 基础概念 1.1 什么是 V…...

解决Docker 配置 daemon.json文件后无法生效

vim /etc/docker/daemon.json 在daemon中配置一下dns {"registry-mirrors": ["https://docker.m.daocloud.io","https://hub-mirror.c.163.com","https://dockerproxy.com","https://docker.mirrors.ustc.edu.cn","ht…...

wpf stylet框架 关于View与viewmodel自动关联绑定的问题

1.1 命名规则 Aview 对应 AVIewModel, 文件夹 views 和 viewmodels 1.2 需要注册服务 //RootViewModel是主窗口 public class Bootstrapper : Bootstrapper<RootViewModel>{/// <summary>/// 配置IoC容器。为数据共享创建服务/// </summary…...

车载测试用例开发-如何平衡用例覆盖度和测试效率的方法论

1 摘要 在进行车载测试用例编写时&#xff0c;会遇到多个条件导致用例排列组合爆炸的情况&#xff0c;但是为了产品测试质量&#xff0c;我们又不得不保证用例设计的需求覆盖度&#xff0c;这样又会使得测试周期非常长。我们如何平衡效率和测试质量&#xff1f;本文进行了一些…...

leetcode(01)森林中的兔子

今天开始记录刷题的过程&#xff0c;每天记录自己刷题的题目和自己的解法&#xff0c;欢迎朋友们给出更多更好的解法。 森林中的兔子 森林中有未知数量的兔子&#xff0c;提问其中若干只兔子“还有多少只兔子与你&#xff08;被提问的兔子&#xff09;颜色相同”。将答案收集到…...

人工智能-机器学习其他技术(决策树,异常检测,主成分分析)

决策树 一种对实例进行分类的树形结构&#xff0c;通过多层判断区分目标所属类别 本质&#xff1a;通过多层判断&#xff0c;从训练数据集中归纳出一组分类规则 优点&#xff1a; 计算量校&#xff0c;运算速度快 易于理解 缺点&#xff1a; 忽略属性间的相关性 样本分布不均时…...

AIGC通信架构深度优化指南

AIGC通信架构深度优化指南 标题&#xff1a;《百亿参数大模型如何高效通信&#xff1f;揭秘AIGC系统的协议层设计艺术》 副标题&#xff1a;从分布式训练到多模态推理&#xff0c;构建高可靠AI通信系统 1. AIGC典型通信场景 1.1 分布式模型训练参数同步 sequenceDiagram训练…...

精益数据分析(7/126):打破创业幻想,拥抱数据驱动

精益数据分析&#xff08;7/126&#xff09;&#xff1a;打破创业幻想&#xff0c;拥抱数据驱动 在创业的道路上&#xff0c;我们都怀揣着梦想&#xff0c;但往往容易陷入自我编织的幻想中。我希望通过和大家一起学习《精益数据分析》&#xff0c;能帮助我们更清醒地认识创业过…...

Android Gradle多渠道打包

目录 1.多渠道打包是什么2.为什么需要多渠道打包3.多渠道配置VariantproductFlavorsbuildTypes 3.构建变体组合关于组合 4.渠道过滤5.渠道资源资源文件资源合并规则代码文件SourceSets 6. 渠道依赖项7.渠道统计meta-dataBuildConfig 8.管理渠道 1.多渠道打包是什么 多聚道打包…...

Day58 | 179. 最大数、316. 去除重复字母、334. 递增的三元子序列

179. 最大数 题目链接&#xff1a;179. 最大数 - 力扣&#xff08;LeetCode&#xff09; 题目难度&#xff1a;中等 代码&#xff1a; class Solution {public String largestNumber(int[] nums) {String[] strsnew String[nums.length];for(int i0;i<nums.length;i)str…...

LabVIEW发电机励磁系统远程诊断

变流器在风电系统中承担电能转换与控制的关键角色。它将发电机输出的低频、可变交流&#xff0c;通过整流、逆变等环节转为频率、电压稳定的交流&#xff0c;以满足电网接入要求&#xff1b;同时&#xff0c;根据实时风速调整发电机转速&#xff0c;实现最大功率追踪。 ​ 在某…...

性能比拼: Go vs Bun

本内容是对知名性能评测博主 Anton Putra Go (Golang) vs. Bun: Performance (Latency - Throughput - Saturation - Availability) 内容的翻译与整理, 有适当删减, 相关指标和结论以原作为准 我对 Bun 在之前的基准测试中的出色表现感到惊讶&#xff0c;因此我决定将它与 Go …...

Kubernetes相关的名词解释Dashboard界面(6)

什么是Kubernetes Dashboard&#xff1f; Kubernetes Dashboard 是一个基于 Web 的用户界面&#xff0c;用于管理 Kubernetes 集群。它是 Kubernetes 官方提供的可视化工具&#xff0c;允许用户通过直观的图形界面而不是命令行来部署、管理和监控集群中的应用程序。 Dashboard…...

Linux网络编程 TCP---并发服务器:多进程架构与端口复用技术实战指南

知识点1【并发服务器—多进程版】 并发服务器&#xff1a;服务器可以同时服务多个客户端 首先复习一下服务器的创建过程&#xff08;如下图&#xff09; 1、监听套接字&#xff08;套接字→绑定→监听&#xff08;连接队列&#xff09;&#xff09; 2、利用accept从连接队列…...

(done) 吴恩达版提示词工程 1. 引言

url: https://www.bilibili.com/video/BV1Z14y1Z7LJ/?spm_id_from333.337.search-card.all.click&vd_source7a1a0bc74158c6993c7355c5490fc600 LLM 有两种&#xff1a; 1.基础 LLM&#xff0c;通过文本训练数据预测后面的内容。 这种 LLM 当你给它提问&#xff1a;What is…...

uniapp微信小程序实现sse

微信小程序实现sse 注&#xff1a;因为微信小程序不支持sse请求&#xff0c;因为后台给的是分包的流&#xff0c;所以我们就使用接受流的方式&#xff0c;一直接受&#xff0c;然后把接受的数据拿取使用。这里还是使用uniapp的原生请求。 上代码 //注意&#xff1a;一定要下…...

【TeamFlow】3 Rust 与 WebAssembly (Wasm) 深度应用指南

WebAssembly 是一种低级的类汇编语言&#xff0c;能在现代浏览器中高效执行。Rust 因其无 GC、内存安全和卓越性能&#xff0c;成为编译到 Wasm 的理想语言。 一、为什么选择 Rust Wasm 性能优势&#xff1a;Rust 生成的 Wasm 代码执行效率接近原生 内存安全&#xff1a;避免…...

C 语言的未来:在变革中坚守与前行

C 语言&#xff0c;作为编程语言领域的一位 “老将”&#xff0c;自诞生以来就一直扮演着至关重要的角色。历经数十年的发展&#xff0c;它的影响力依然广泛而深远。在科技飞速发展的今天&#xff0c;新的编程语言如雨后春笋般不断涌现&#xff0c;C 语言的未来发展走向成为了众…...

SQL注入之information_schema表

1 information_schema表介绍&#xff1a; information_schema表是一个MySQL的系统数据库&#xff0c;他里面包含了所有数据库的表名 SQL注入中最常见利用的系统数据库&#xff0c;经常利用系统数据库配合union联合查询来获取数据库相关信息&#xff0c;因为系统数据库中所有信…...

android framework开发的技能要求

作为Android Framework开发工程师,需要具备深入的系统底层理解能力和对Android架构的全面认知。以下是核心技能要求,分为技术能力和软实力两大方向: 一、核心技术能力 Android系统架构深度掌握 Binder机制:理解Binder驱动、ServiceManager、AIDL跨进程通信原理,能分析Bind…...

AWS EC2完全指南:如何快速搭建高性能云服务器?

一、什么是AWS EC2&#xff1f;云时代的虚拟服务器革命 AWS Elastic Compute Cloud&#xff08;EC2&#xff09;作为全球领先的云服务器解决方案&#xff0c;正在重新定义虚拟服务器的可能性。与传统VPS相比&#xff0c;EC2提供&#xff1a; 秒级弹性扩展&#xff1a;CPU/RAM按…...

go环境安装mac

下载go安装包&#xff1a;https://golang.google.cn/dl/ 找到对应自己环境的版本下载。 注意有二进制的包&#xff0c;也有图形界面安装的包。图形界面直接傻瓜式点就行了。 二进制的按照下面操作&#xff1a; 1、下载二进制包。 2、将下载的二进制包解压至 /usr/local目录…...

Python实现对大批量Word文档进行批量自动化排版(15)

前言 本文是该专栏的第15篇,后面会持续分享Python办公自动化干货知识,记得关注。 在本专栏上一篇文章《Python实现对目标Word文档进行自动化排版【4万字精讲】(14)》中,笔者已经详细介绍“基于Python,实现对目标docx格式的word文档进行自动化排版”的实战教学(文章附带…...

嵌入式面试题解析:二维数组,内容与总线,存储格式

在嵌入式系统领域&#xff0c;扎实掌握基础概念是应对面试的关键。本文通过典型面试题&#xff0c;详细解析核心知识&#xff0c;梳理易错点&#xff0c;并补充常见面试题&#xff0c;助力新手快速入门。 一、二维数组元素地址计算 题目 若二维数组 arr[0..M-1][0..N-1] 的首…...

【iOS】alloc init new底层原理

目录 前言 alloc alloc核心操作 cls->instanceSize(extraBytes) calloc obj->initInstanceIsa init 类方法&#xff1a; 实例方法&#xff1a; new 前言 笔者最近在进行对OC语言源码的学习&#xff0c;学习源码的过程中经常会出现一些从来没有遇见过的函数&…...

解决vscode找不到Python自定义模块,报错No module named ‘xxx‘

1、 首先在.vscode下的launch.json中添加"env": {“PYTHONPATH”: “${workspaceRoot}”} {"version": "0.2.0","configurations": [{省略其他配置"env": {"PYTHONPATH": "${workspaceRoot}"}}] }2、 …...

【某比特币网址请求头部sign签名】RSA加密逆向分析

目标&#xff1a;aHR0cDovL21lZ2FiaXQudmlwL21hcmtldA 直接搜索sign不方便定位&#xff0c;可以换个思路搜asi_uuid或者user_info 为什么搜这个&#xff0c;因为都是请求头里面的参数&#xff0c;基本上会在一起 实际上就是Object(h.a)((new Date).getTime()) 直接在这里打断点…...

【Docker项目实战】使用Docker部署Jupyter Notebook服务

【Docker项目实战】使用Docker部署Jupyter Notebook服务 一、 Jupyter Notebook介绍1.1 Jupyter Notebook 简介1.2 主要特点1.3 主要使用场景二、本次实践规划2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compos…...

Oracle高级语法篇 - 用户与角色关系

在Oracle数据库中&#xff0c;用户和角色是权限管理的核心概念。用户是数据库的使用者&#xff0c;而角色则是权限的集合。通过合理地分配角色给用户&#xff0c;可以简化权限管理&#xff0c;提高数据库的安全性和易用性。本文将详细讲解Oracle中用户和角色之间的关系&#xf…...

“小坝” 策略:始发站 buffer 控制与优化

端到端&#xff0c;这两个端是两个应用程序中的位置&#xff0c;第一个端指数据被产生处&#xff0c;第二个端指数据被消费处。更一般的&#xff0c;把数据发生的应用程序所在的主机视为数据始发站也是合理的。 网络中遍布 buffer&#xff0c;buffer 却是一把双刃剑的存在&…...

【esp32 点亮led】-解决不能闪烁问题

问题现象&#xff1a;将esp例程中的led例程下载到开发板中&#xff0c;led不能闪烁&#xff0c;串口查看&#xff0c;可以看到对应的led ON/led off 信息。 解决办法&#xff1a; 使用idf.py menuconfig 命令配置相应的引脚为GPIO模式&#xff0c;如下图所示&#xff0c;保存…...

自然语言处理(9)—— 共现词矩阵及Python实现

共现词矩阵 1. 概述2. 构建步骤3. 代码实现&#xff08;Python&#xff09;结语 共现词矩阵&#xff08;Co-occurrence Matrix&#xff09;是自然语言处理&#xff08;NLP&#xff09;中用于捕捉词语间语义关系的重要工具。共现矩阵通过统计词语在特定上下文窗口内的共现频率&a…...

缓存 --- Redis的三种高可用模式

缓存 --- Redis的三种高可用模式 主从复制&#xff08;Replication&#xff09;哨兵模式&#xff08;Sentinel&#xff09;集群模式&#xff08;Cluster&#xff09;总结对比选择建议 Redis 的高可用架构模式主要有三种&#xff1a;主从复制&#xff08;Replication&#xff09…...

飞帆中控件数据和 Vue 双向绑定

在 Vue 中&#xff0c;数据的双向绑定是指在视图和数据模型之间自动保持同步。Vue 实现双向绑定的核心特性是其 响应式系统&#xff0c;它能够追踪数据的变化并自动更新视图&#xff0c;反之亦然&#xff0c;视图的变化也可以影响数据。 Vue 提供了几种方式来实现数据双向绑定&…...

【外研在线-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…...

实现AWS Data Pipeline安全地请求企业内部API返回数据

需要编写一段Data Pipeline在AWS云上运行&#xff0c;它需要访问企业内部的API获取JSON格式的数据&#xff0c;企业有网关和防火墙&#xff0c;API有公司的okta身份认证&#xff0c;通过公司的域账号来授权访问&#xff0c;现在需要创建一个专用的域账号&#xff0c;让Data Pip…...

AI书籍大模型微调-基于亮数据获取垂直数据集

大模型的开源&#xff0c;使得每位小伙伴都能获得AI的加持&#xff0c;包括你可以通过AIGC完成工作总结&#xff0c;图片生成等。这种加持是通用性的&#xff0c;并不会对个人的工作带来定制的影响&#xff0c;因此各个行业都出现了垂直领域大模型。 垂直大模型是如何训练出来…...

cloudstudio学习笔记之openwebui

代码获取 git clone 参考资料 openwebui官网 https://docs.openwebui.com/getting-started/advanced-topics/development 后端启动 cd backend pip install -r requirements.txt -U sh dev.sh后端启动成功后的界面 在cloudstudio提供的vscode弹出的提示中打开浏览器并在末…...