初等数论--欧拉函数积性的证明
文章目录
- 1. 简介
- 2. 证明一:唯一分解定理+容斥原理
- 3. 证明二:中国剩余定理
- 4. 引理证明
- 5. 参考
1. 简介
欧拉函数 ϕ ( n ) \phi(n) ϕ(n)表示在小于等于 n n n的正整数中与 n n n互质的个数。
如
ϕ ( 6 ) = 2 ( 1 5 ) ϕ ( 12 ) = 4 ( 1 5 7 11 ) \phi(6)=2 \quad (1\ 5)\\ \phi(12) = 4\quad (1\ 5\ 7 \ 11) ϕ(6)=2(1 5)ϕ(12)=4(1 5 7 11)
欧拉函数是一个积性函数;
所谓积性函数,指的是满足下面的条件的函数
∀ a , b ∈ N + , s . t . gcd ( a , b ) = 1 ⇒ ϕ ( a b ) = ϕ ( a ) ϕ ( b ) \forall a, b \in N_+, \ s.t.\ \gcd(a,b) =1 \Rightarrow \phi(ab) = \phi(a)\phi(b) ∀a,b∈N+, s.t. gcd(a,b)=1⇒ϕ(ab)=ϕ(a)ϕ(b)
本文提供两种比较初等方式证明欧拉函数的积性性质,内容源于知乎。
- 算术基本定理+容斥原理
- 中国剩余定理
2. 证明一:唯一分解定理+容斥原理
根据算术基本定理,我们有任意一个大于 1 1 1的正整数可以唯一表示为下面的形式
n = Π i = 1 m p i a i n=\Pi_{i=1}^{m}p_i^{a_i} n=Πi=1mpiai
我们令全集
S n : = { 1 , 2 , ⋯ , n } S_n := \{1,2,\cdots,n\} Sn:={1,2,⋯,n}
我们可以将 S n S_n Sn中 n n n的因子根据是是否整除素数 p i p_i pi进行分类
A p i : = { x ∣ x = k p i ∧ x ∈ S n , k ∈ N ∗ } A_{p_i} := \{x|\ x = kp_i \land x \in S_n, k \in N^* \} Api:={x∣ x=kpi∧x∈Sn,k∈N∗}
因此我们可以将所有与 n n n互质的数的集合表示为
∩ i = 1 m A p i ‾ \cap_{i=1}^{m} \overline {A_{p_i}} ∩i=1mApi
应用容斥原理得到
∩ i = 1 m A p i ‾ = S n − A p 1 − ⋯ + ( − 1 ) m ∣ A p 1 ∩ A p 2 ∩ ⋯ A p m ∣ \cap_{i=1}^{m} \overline {A_{p_i}} = S_{n} - A_{p_1} - \cdots+(-1)^{m}|A_{p_1} \cap A_{p_2} \cap \cdots A_{p_m}| ∩i=1mApi=Sn−Ap1−⋯+(−1)m∣Ap1∩Ap2∩⋯Apm∣
显然有
p 1 ∣ s ∧ p 2 ∣ s ⇒ p 1 p 2 ∣ s p_1 \mid s\ \land p_2 \mid s \Rightarrow p_1p_2 \mid s p1∣s ∧p2∣s⇒p1p2∣s
因此
∣ A p 1 ∩ A p 2 ⋯ ∩ A p m ∣ = n p 1 p 2 ⋯ p m |A_{p_1} \cap A_{p_2} \cdots \cap A_{p_m}| = \frac{n}{p_1p_2\cdots p_m} ∣Ap1∩Ap2⋯∩Apm∣=p1p2⋯pmn
计数后的结果
∣ ∩ i = 1 m A p i ‾ ∣ = n − n p 1 − ⋯ − n p m + n p 1 p 2 + n p 1 p 3 + ⋯ + n p m − 1 p m ⋯ + ( − 1 ) m n p 1 p 2 |\cap_{i=1}^m \overline{A_{p_i}}| =n -\frac{n}{p_1} - \cdots - \frac{n}{p_m} + \\ \frac{n}{p_1p_2} +\frac{n}{p_1p_3}+ \cdots + \frac{n}{p_{m-1}p_m}\\ \cdots +(-1)^m \frac{n}{p_1p_2} ∣∩i=1mApi∣=n−p1n−⋯−pmn+p1p2n+p1p3n+⋯+pm−1pmn⋯+(−1)mp1p2n
整理后得到
ϕ ( n ) = ∣ ∩ i = 1 m A p i ‾ ∣ = n × Π i = 1 m ( 1 − 1 p i ) \phi(n) =|\cap_{i=1}^m \overline{A_{p_i}}| = n \times \Pi _{i=1}^{m}(1-\frac{1}{p_i}) ϕ(n)=∣∩i=1mApi∣=n×Πi=1m(1−pi1)
到此,我们导出了欧拉函数的定义式;下面直接带进去算就行了。
假设 a b a\ b a b的唯一分解式如下
a = Π i = 1 s p i x i b = Π j = 1 t q j y j a = \Pi_{i=1}^s p_i^{x_i} \\ b = \Pi_{j=1}^t q_j^{y_j} a=Πi=1spixib=Πj=1tqjyj
由于 gcd ( a , b ) = 1 \gcd(a, b) =1 gcd(a,b)=1, 因此
∀ i ∈ { 1 , 2 , ⋯ , s } , j ∈ { 1 , 2 , ⋯ , t } ; p i ≠ q j \forall i \in \{ 1,2, \cdots,s\}, j \in \{ 1,2, \cdots,t\};\\ p_i \ne q_j ∀i∈{1,2,⋯,s},j∈{1,2,⋯,t};pi=qj
因此 a b ab ab的唯一分解式可表示为
a b = Π i = 1 s p i x i Π j = 1 t q j y j ab = \Pi_{i=1}^s p_i^{x_i} \Pi_{j=1}^tq_j^{y_j} ab=Πi=1spixiΠj=1tqjyj
综上可得
ϕ ( a b ) = a b Π i = 1 s ( 1 − 1 p i ) Π j = 1 t ( 1 − 1 q j ) = a Π i = 1 s ( 1 − 1 p i ) b Π j = 1 t ( 1 − 1 q j ) = ϕ ( a ) ϕ ( b ) \begin{align*} \phi(ab) &=ab\Pi_{i=1}^{s} (1-\frac{1}{p_i})\Pi_{j=1}^{t}(1-\frac{1}{q_j})\\ &= a\Pi_{i=1}^{s} (1-\frac{1}{p_i})b\Pi_{j=1}^{t}(1-\frac{1}{q_j}) \\ &=\phi(a)\phi(b) \end{align*} ϕ(ab)=abΠi=1s(1−pi1)Πj=1t(1−qj1)=aΠi=1s(1−pi1)bΠj=1t(1−qj1)=ϕ(a)ϕ(b)
Q . E . D Q.E.D Q.E.D
3. 证明二:中国剩余定理
先引入一个引理 ,证明放在最后面;现在直接用就完了。
gcd ( a , x ) = gcd ( b , x ) = 1 ⇒ gcd ( a b , x ) = 1 \gcd(a,x)=\gcd(b,x) =1 \Rightarrow \gcd(ab, x) = 1 gcd(a,x)=gcd(b,x)=1⇒gcd(ab,x)=1
设 S ( n ) = { 1 ≤ x ≤ n ∣ gcd ( x , n ) = 1 } S(n) = \{ 1 \le x \le n | \gcd(x,n)=1\} S(n)={1≤x≤n∣gcd(x,n)=1},
S ( n ) S(n) S(n)表示所有与 n n n互质的数的集合。
容易得到
∀ 1 ≤ x ≤ a b , gcd ( a b , x ) = 1 ⇒ gcd ( a , x ) = gcd ( b , x ) = 1 \forall 1 \le x \le ab, \gcd(ab,x) =1 \Rightarrow \gcd(a,x) =\gcd(b,x) =1 ∀1≤x≤ab,gcd(ab,x)=1⇒gcd(a,x)=gcd(b,x)=1
因此
gcd ( a , x m o d a ) = gcd ( b , x m o d b ) = 1 \gcd(a,x \bmod a) = \gcd(b, x \bmod b) =1 gcd(a,xmoda)=gcd(b,xmodb)=1
从而有 S ( a b ) S(ab) S(ab)到 { ( x , y ) ∣ x ∈ S ( a ) , y ∈ S ( b ) } \{ (x,y) | x \in S(a), y \in S(b)\} {(x,y)∣x∈S(a),y∈S(b)}的映射。
∀ 1 ≤ x ≤ a , 1 ≤ y ≤ b , gcd ( a , x ) = gcd ( b , y ) = 1 ; \forall 1 \le x \le a, 1 \le y \le b, \gcd(a,x) =\gcd(b,y) =1; ∀1≤x≤a,1≤y≤b,gcd(a,x)=gcd(b,y)=1;
根据中国剩余定理我们可以得到
∃ ! 1 ≤ z ≤ a b , s . t . { z ≡ x ( m o d a ) z ≡ y ( m o d b ) \exists! \ 1 \le z \le ab, s.t. \\ \begin{equation*} \begin{cases} z \equiv x \quad( \bmod\ a) \\ z \equiv y \quad (\bmod \ b) \end{cases} \end{equation*} ∃! 1≤z≤ab,s.t.{z≡x(mod a)z≡y(mod b)
因此 gcd ( a , z ) = gcd ( b , z ) = 1 \gcd(a,z) =\gcd(b,z) =1 gcd(a,z)=gcd(b,z)=1, 根据引理可得
gcd ( a b , z ) = 1 \gcd(ab,z)=1 gcd(ab,z)=1。
因此有从 { ( x , y ) ∣ x ∈ S ( a ) , y ∈ S ( b ) } \{ (x,y)|x \in S(a), y \in S(b)\} {(x,y)∣x∈S(a),y∈S(b)}到 S ( a b ) S(ab) S(ab)的映射。
综上, { ( x , y ) ∣ x ∈ S ( a ) , y ∈ S ( b ) } \{ (x,y)|x \in S(a), y \in S(b)\} {(x,y)∣x∈S(a),y∈S(b)}与 S ( a b ) S(ab) S(ab)的大小一致,又由于
∣ S ( n ) ∣ = ϕ ( n ) |S(n)| = \phi(n) ∣S(n)∣=ϕ(n), 因此
gcd ( a , b ) = 1 ⇒ ϕ ( a b ) = ϕ ( a ) ϕ ( b ) \gcd(a,b) =1 \Rightarrow \phi(ab) =\phi(a)\phi(b) gcd(a,b)=1⇒ϕ(ab)=ϕ(a)ϕ(b)。
Q . E . D Q.E.D Q.E.D
4. 引理证明
gcd ( a , x ) = gcd ( b , x ) = 1 ⇒ gcd ( a b , x ) = 1 \gcd(a,x)=\gcd(b,x) =1 \Rightarrow \gcd(ab, x) = 1 gcd(a,x)=gcd(b,x)=1⇒gcd(ab,x)=1
证明一: 裴蜀系数
由于 a , x a,x a,x互质,那么根据裴蜀定理
∃ m 1 , n 1 ∈ Z , s . t . a m 1 + x n 1 = 1 \exists m_1,n_1 \in Z, \ s.t. \quad am_1+xn_1=1 ∃m1,n1∈Z, s.t.am1+xn1=1
同理
∃ m 2 , n 2 ∈ Z , s . t . b m 2 + x n 2 = 1 \exists m_2,n_2 \in Z,\ s.t. \quad bm_2+xn_2=1 ∃m2,n2∈Z, s.t.bm2+xn2=1
两式相乘
( a m 1 + x n 1 ) ( b m 2 + x n 2 ) = ( m 1 m 2 ) a b + ( a m 1 n 2 + b m 2 n 1 + n 1 n 2 x ) x = 1 (am_1+xn_1)(bm_2+xn_2) =\\ (m_1m_2) ab +(am_1n_2+bm_2n_1+n_1n_2x) x=1 (am1+xn1)(bm2+xn2)=(m1m2)ab+(am1n2+bm2n1+n1n2x)x=1
因此存在 m ′ = m 1 m 2 , n ′ = ( a m 1 n 2 + b m 2 n 1 + n 1 n 2 x ) m' =m_1m_2,n'=(am_1n_2+bm_2n_1+n_1n_2x) m′=m1m2,n′=(am1n2+bm2n1+n1n2x)使得
m ′ a b + n ′ x = 1 m'ab+n'x=1 m′ab+n′x=1; 因此 gcd ( a b , x ) = 1 \gcd(ab, x) =1 gcd(ab,x)=1。
证明二: 反证法
假设 gcd ( a b , x ) = d > 1 \gcd(ab, x) = d >1 gcd(ab,x)=d>1,
d > 1 d >1 d>1,那么必有质数 p > 1 , p ∣ d p > 1, p \mid d p>1,p∣d , p ∣ a b , p ∣ x p \mid ab, p \mid x p∣ab,p∣x。
因此要么 p ∣ a p \mid a p∣a, 要么 p ∣ b p \mid b p∣b。
进而 p ∣ gcd ( a , x ) p \mid \gcd(a,x) p∣gcd(a,x)或者 p ∣ gcd ( b , x ) p \mid \gcd(b,x) p∣gcd(b,x),
而这与 gcd ( a , x ) = gcd ( b , x ) = 1 \gcd(a,x) = \gcd(b,x) =1 gcd(a,x)=gcd(b,x)=1矛盾,所以假设不成立,
gcd ( a b , x ) = 1 \gcd(ab,x)=1 gcd(ab,x)=1。
Q . E . D Q.E.D Q.E.D
5. 参考
zhihu-WYXkk-Gauss
相关文章:
初等数论--欧拉函数积性的证明
文章目录 1. 简介2. 证明一:唯一分解定理容斥原理3. 证明二:中国剩余定理4. 引理证明5. 参考 1. 简介 欧拉函数 ϕ ( n ) \phi(n) ϕ(n)表示在小于等于 n n n的正整数中与 n n n互质的个数。 如 ϕ ( 6 ) 2 ( 1 5 ) ϕ ( 12 ) 4 ( 1 5 7 11 ) \phi(…...
MCP(Model Context Protocol)是专为LLM(大语言模型)应用设计的标准化协议
核心定义 MCP(Model Context Protocol)是专为LLM(大语言模型)应用设计的标准化协议,通过安全可控的方式向AI应用暴露数据和功能。主要提供以下能力: 标准化的上下文管理安全的功能调用接口跨平台的数据交…...
Midscene.js Chrome 插件实战:AI 驱动的 UI 自动化测试「喂饭教程」
Midscene.js Chrome 插件实战:AI 驱动的 UI 自动化测试「喂饭教程」 前言一、Midscene.js 简介二、环境准备与插件安装1. 安装 Chrome 插件2. 配置模型与 API Key三、插件界面与功能总览四、实战演练:用自然语言驱动网页自动化1. 典型场景一(Action):账号登录步骤一:打开…...
Python在大数据机器学习模型的多模态融合:深入探索与实践指南
一、多模态融合的全面概述 1.1 多模态融合的核心概念 多模态融合(Multimodal Fusion)是指将来自不同传感器或数据源(如图像、文本、音频、视频、传感器数据等)的信息进行有效整合,以提升机器学习模型的性能和鲁棒性。在大数据环境下,多模态融合面临着独特的挑战和机遇: 数…...
C++ 访问者模式详解
访问者模式(Visitor Pattern)是一种行为设计模式,它允许你将算法与对象结构分离,使得可以在不修改现有对象结构的情况下定义新的操作。 核心概念 设计原则 访问者模式遵循以下设计原则: 开闭原则:可以添…...
实验-有限状态机2(数字逻辑)
目录 一、实验内容 1.1 介绍 1.2 内容 二、实验步骤 2.1 电路原理图 2.2 步骤 2.3 状态图 4.4 状态转换表和输出表 2.5 具体应用场景 三、调试 四、实验使用环境 五、实验小结与思考 5.1 遇到的问题及解决方法 5.2 实验收获 一、实验内容 1.1 介绍 在解决更复…...
IC解析之TPS92682-Q1(汽车LED灯控制IC)
目录 1 IC特性介绍2 主要参数3 接口定义4 工作原理分析TPS92682-Q1架构工作模式典型应用通讯协议 控制帧应答帧协议5 总结 1 IC特性介绍 TPS92682 - Q1 是德州仪器(TI)推出的一款双通道恒压横流控制器,同时还具有各种电器故障保护,…...
数据结构-堆
目录 heapq 导入 初始化 插入元素 返回最小值 PriorityQueue 导入 初始化 入队 出队 堆是一颗树,其每个节点都有一个值,且(小根堆:每个父节点都小于等于其子节点 (在进树时不断进行比较 STL中的 priority…...
提升编程效率的利器:Zed高性能多人协作代码编辑器
在当今这个快节奏的开发环境中,一个高效、灵活的代码编辑器无疑对开发者们起着至关重要的支持作用。Zed,作为来自知名编辑器Atom和语法解析器Tree-sitter的创造者的心血之作,正是这样一款高性能支持多人合作的编辑神器。本文将带领大家深入探…...
【25软考网工】第六章 网络安全(1)网络安全基础
博客主页: christine-rr-CSDN博客 专栏主页: 软考中级网络工程师笔记 大家好,我是christine-rr !目前《软考中级网络工程师》专栏已经更新二十多篇文章了,每篇笔记都包含详细的知识点,希望能帮助到你! 今日…...
Java中的包装类
目录 为什么要有包装类 包装类的作用 基本数据类型和包装类的对应关系 包装类的核心功能 装箱(Boxing)和拆箱(Unboxing) 装箱: 拆箱: 类型转换 字符串<----->基本类型 进制转换 自动装箱与…...
催缴机器人如何实现停车费追缴“零遗漏”?
面对高达35%的停车欠费率,传统人工催缴模式因效率低、成本高、覆盖有限等问题,难以应对海量欠费订单的挑战。本文带大家探究“催缴机器人”如何实现停车费追缴“零遗漏”,实现从“被动催缴”到“主动管理”的跨越。 智慧停车欠费自动化追缴系…...
Oracle 执行计划中的 ACCESS 和 FILTER 详解
Oracle 执行计划中的 ACCESS 和 FILTER 详解 在 Oracle 执行计划中,ACCESS 和 FILTER 是两个关键的操作类型,它们描述了 Oracle 如何检索和处理数据。理解这两个概念对于 SQL 性能调优至关重要。 ACCESS(访问) ACCESS 表示 Ora…...
使用FastAPI微服务在AWS EKS中构建上下文增强型AI问答系统
系统概述 本文介绍如何使用FastAPI在AWS Elastic Kubernetes Service (EKS)上构建一个由多个微服务组成的AI问答系统。该系统能够接收用户输入的提示(prompt),通过调用其他微服务从AWS ElastiCache on Redis和Amazon DynamoDB获取相关上下文,然后利用AW…...
oracle dblink varchar类型查询报错记录
在使用Oracle DBLink(数据库链接)查询VARCHAR类型数据时,有时会遇到报错问题。这些错误可能与数据类型转换、字符集设置、数据库版本兼容性等因素有关。本文将详细分析常见的报错原因及其解决方法。 一、常见报错及其原因 1. ORA-01722: in…...
计算人声录音后电平的大小(dB SPL->dBFS)
计算人声录音后电平的大小 这里笔记记录一下,怎么计算已知大小的声音,经过麦克风、声卡录制后软件内录得的音量电平值。(文章最后将计算过程整理为Python代码,方便复用) 假设用正常说话的声音大小65dB(SP…...
Android kernel日志中healthd关键词意义
Android kernel日志中healthd关键词意义 在kernel的healthd日志中会打印电池信息。通常比较关心的是电池温度,剩余电量,电压,电池健康,电池状况等。 level:剩余电量。 voltage:电压。 temperatureÿ…...
操作系统面试问题(4)
32.什么是操作系统 操作系统是一种管理硬件和软件的应用程序。也是运行在计算机中最重要的软件。它为硬件和软件提供了一种中间层,让我们无需关注硬件的实现,把心思花在软件应用上。 通常情况下,计算机上会运行着许多应用程序,它…...
【nestjs】一般学习路线
nestjs中文文档 其实几个月前也对nestjs进行了学习,前前后后看了很多文档、博客,另外也找了相应的代码看了,但最后也还是一知半解,只是知道大概怎么写,怎么用。 这次下定决心再次看一遍,从代码学习到文档…...
多线程面试题总结
基础概念 进程与线程的区别 进程:操作系统资源分配的基本单位,有独立内存空间线程:CPU调度的基本单位,共享进程资源对比: 创建开销:进程 > 线程通信方式:进程(IPC)、线程(共享内存)安全性:进程更安全(隔离),线程需要同步线程的生命周期与状态转换 NEW → RUNNABLE …...
面试常考算法2(核心+acm模式)
15. 三数之和 核心代码模式 class Solution {public List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> ansnew ArrayList<>();Arrays.sort(nums);int lennums.length;int pre2000000;for(int i0;i<len-2;i){while(i<len-…...
虚拟文件系统
虚拟文件系统(Virtual File System,VFS)是操作系统内核中的一个抽象层,它为不同的文件系统(如ext4、NTFS、FAT32等)提供统一的访问接口。通过VFS,用户和应用程序无需关心底层文件系统的具体差异…...
机器学习与深度学习的区别与联系:多角度详细分析
机器学习与深度学习的区别与联系:多角度详细分析 引言 随着人工智能技术的快速发展,机器学习和深度学习已成为当今科技领域的核心驱动力。尽管这两个术语经常被一起提及,甚至有时被互换使用,但它们之间存在着明显的区别和紧密的…...
c++:迭代器(Iterator)
目录 🚪什么是迭代器? 🔧 迭代器的本质 为什么不用普通数组或下标? STL容器的迭代器并不是共用一个类型! 迭代器的类型(Iterator Categories) 📦 常见容器的迭代器类型 ✅ 迭…...
MindSpore框架学习项目-ResNet药物分类-数据增强
目录 1.数据增强 1.1设置运行环境 1.1.1数据预处理 数据预处理代码解析 1.1.2数据集划分 数据集划分代码说明 1.2数据增强 1.2.1创建带标签的可迭代对象 1.2.2数据预处理与格式化(ms的data格式) 从原始图像数据到 MindSpore 可训练 / 评估的数…...
python打卡day20
特征降维------特征组合(以SVD为例) 知识点回顾: 奇异值的应用: 特征降维:对高维数据减小计算量、可视化数据重构:比如重构信号、重构图像(可以实现有损压缩,k 越小压缩率越高&#…...
2025数维杯数学建模B题完整限量论文:马拉松经济的高质量发展思路探索
2025数维杯数学建模B题完整限量论文:马拉松经济的高质量发展思路探索,先到先得 B题完整论文https://www.jdmm.cc/file/2712066/ 近年来,我国马拉松赛事数量呈现 “ 先井喷、后调整、再复苏 ” 的显著 变化。据中国田径协会数据, …...
深入解析WPF中的3D图形编程:材质与光照
引言 在Windows Presentation Foundation (WPF) 中创建三维(3D)图形是一项既有趣又具有挑战性的任务。为了帮助开发者更好地理解如何使用WPF进行3D图形的渲染,本文将深入探讨GeometryModel3D类及其相关的材质和光源设置。 1、GeometryModel3D类简介 GeometryMode…...
python格式化小数加不加f的区别
一直好奇这个f是必须加的吗,但是不论是搜索还是ai都给不出准确的回复,就自己测试了一下 结论是不带f指定的是总的数字个数,包含小数点前的数字 带f的就是仅指小数点后数字个数 需要注意的是不带f的话数字是会用科学计数法表示的ÿ…...
【MySQL】存储引擎 - FEDERATED详解
📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…...
window 显示驱动开发-线性内存空间段
线性内存空间段是显示硬件使用的经典段类型。 线性内存空间段符合以下模型: 它虚拟化位于图形适配器上的视频内存。GPU 直接访问它;也就是说,无需通过页面映射进行重定向。它在一维地址空间中以线性方式进行管理。 驱动程序将DXGK_SEGMENTDESCRIPTOR结…...
uniapp-商城-46-创建schema并新增到数据库
在后台页面中,数据管理是关键。最初,数据可能是通过代码硬编码在页面中,但这种方式缺乏灵活性和扩展性。为了适应实际需求,应使用数据库来存储数据,允许用户自行添加和更新信息。通过数据库,后台页面可以动…...
Go语言的宕机恢复,如何防止程序奔溃
Go语言中的panic机制用于处理程序中无法继续执行的严重错误。当程序触发panic时,当前函数的执行会立即停止,程序开始逐层向上回溯调用栈,执行每个函数的defer语句,直到到达recover函数或者程序崩溃退出。通过recover函数ÿ…...
阅文集团C++面试题及参考答案
能否不使用锁保证多线程安全? 在多线程编程中,锁(如互斥锁、信号量)是实现线程同步的传统方式,但并非唯一方式。不使用锁保证多线程安全的核心思路是避免共享状态、使用原子操作或采用线程本地存储。以下从几个方面详…...
三款实用电脑工具
今天为大家精心推荐三款实用软件,分别是人声伴奏分离软件、文件夹迁移软件和文字转拼音软件。 第一款:NovaMSS NovaMSS是一款功能强大的人声伴奏分离软件,它提供社区版和专业版,社区版永久免费。 该软件能够一键提取人声、伴奏、…...
【图片识别内容改名】图片指定区域OCR识别并自动重命名,批量提取图片指定内容并重命名,基于WPF和阿里云OCR识别的解决
基于WPF和阿里云OCR的图片区域识别与自动重命名解决方案 应用场景 电商商品管理:批量处理商品图片,从固定区域识别商品名称、型号、价格等信息,重命名为"商品名称_型号_价格.jpg"格式档案数字化:扫描后的合同、文件等图片,从固定位置识别合同编…...
可再生能源中的隔离栅极驱动器:光伏逆变器的游戏规则改变者
在迈向可持续未来的征程中,可再生能源已成为全球发展的基石。在可再生能源中,太阳能以其可及性和潜力脱颖而出。光伏(PV)逆变器是太阳能系统的核心,它严重依赖先进技术将太阳能电池板的直流电转换为可用的交流电。隔离栅极驱动器就是这样一种…...
解决:EnvironmentNameNotFound: Could not find conda environment?
明明创建了环境却找不到? conda env list 查看所有环境 使用绝对路径激活 conda activate /home/guokaiyin/miniconda3/envs/synthocc...
Java SE(10)——抽象类接口
1.抽象类 1.1 概念 在之前讲Java SE(6)——类和对象(一)的时候说过,所有的对象都可以通过类来抽象。但是反过来,并不是说所有的类都是用来抽象一个具体的对象。如果一个类本身没有足够的信息来描述一个具体的对象,而…...
数据结构与算法—顺序表和链表(1)
数据结构与算法—顺序表(1) 线性表顺序表概念与结构分类静态顺序表动态顺序表 动态顺序表的实现 线性表 线性表(linear list)是n个具有相同特性的数据元素的有限序列。线性表是⼀种在实际中⼴泛使⽤的数据结构,常⻅的…...
软件测试的概念
需求的概念 开发模型 测试模型 1. 什么是需求 在多数软件公司,会有两部分需求,⼀部分是⽤⼾需求,⼀部分是软件需求。 1.1 ⽤⼾需求 ⽤⼾需求:可以简单理解为甲⽅提出的需求,如果没有甲⽅,那么就是终端⽤⼾…...
基于Qwen-14b的基础RAG实现及反思
1、概览 本文主要介绍RAG的基础实现过程,给初学者提供一些帮助,RAG即检索增强生成,主要是两个步骤:检索、生成,下面将基于这两部分进行介绍。 2、检索 检索的主要目的是在自定义的知识库kb中查询到与问题query相关的候…...
TikTok广告投放优化指南
1. 广告账户时区设置 在创建广告账户时,建议优先选择美国太平洋时区(UTC-8洛杉矶时间),这有助于与国际投放节奏保持一致。 2. 达人视频授权问题解答 当在广告后台选择"Affiliate post"却找不到已授权的达人视频时,这种情况确实会…...
WorkManager与Kotlin后台任务调度指南
在Android开发中,使用WorkManager和Kotlin可以高效管理后台任务。以下是分步指南及关键概念: 1. 添加依赖项 在build.gradle文件中添加依赖: dependencies {implementation("androidx.work:work-runtime-ktx:2.7.1") }2. 创建Wor…...
生信服务器如何安装cellranger|生信服务器安装软件|单细胞测序软件安装
一.Why cellranger Cell Ranger 是由 10x Genomics 公司开发的一款用于处理其单细胞测序(single-cell RNA-seq, scRNA-seq)数据的软件套件。它主要用于将原始测序数据(fastq 文件)转换为可以用于下游分析的格式,比如基…...
Spring Web MVC基础理论和使用
目录 什么是MVC 什么是SpringMVC SpringMVC基础使用 建立连接 RequestMapping介绍 请求 传递参数 传递对象 参数重命名 传递数组 传递JSON数据 获取URL中参数 上传文件 获取Cookie/Session 获取Header 响应 返回静态页面 RestController和Controller的区别 返…...
Go Modules 的基本使用
在 Go Modules 项目中,首次运行时下载依赖包的正确流程需要根据项目情况区分处理。以下是详细步骤和最佳实践: 一、首次初始化项目的标准流程 1.1 创建项目目录并初始化模块 mkdir myproject && cd myproject go mod init github…...
等保系列(三):等保测评的那些事
一、等保测评主要做什么 1、测评准备阶段 (1)确定测评对象与范围 明确被测系统的边界、功能模块、网络架构及承载的业务。 确认系统的安全保护等级(如二级、三级)。 (2)签订测评合同 选择具备资质的测…...
一种海杂波背景下前视海面目标角超分辨成像方法——论文阅读
一种海杂波背景下前视海面目标角超分辨成像方法 1. 专利的研究目标与实际问题1.1 研究目标1.2 实际意义2. 专利的创新方法、公式及优势2.1 总体思路2.2 关键公式及技术细节2.2.1 运动几何模型2.2.2 方位卷积模型2.2.3 贝叶斯反演与迭代方程2.2.4 参数估计2.3 与传统方法的对比优…...
在线caj转换word
CAJ格式是中国知网特有的一种文献格式,在学术研究等领域广泛使用,但有时我们需要将其转换为Word格式,方便编辑、引用文献。本文分享如何轻松将CAJ转换为word的转换工具,提高阅读和办公效率。 如何将CAJ转换WORD? 1、使用CAJ转换…...