剩余定理的电枢语言描述

参考

初等数论简明教程.csdn
电枢公式--电枢绕线的规律.csdn

约定

本文默认在集合 N M N_M NM中讨论问题。

  • f ( a j ) f(a_j) f(aj):集合 { a 1 , . . . a s } {\{a_1,...a_s\}} {a1,...as} 所有元素均符合 f ( a j ) f(a_j) f(aj)
  • f ( a i , a j ) f(a_i,a_j) f(ai,aj):集合 { a 1 , . . . a s } {\{a_1,...a_s\}} {a1,...as}的任意有序对均符合 f ( a i , a j ) f(a_i,a_j) f(ai,aj)
  • ( b m ∣ M ) (\dfrac{b}{m}|M) (mb∣M)= { t m + b ∣ 0 ≤ t m + b < M } , m ∣ M \{tm+b |0 \le tm+b<M\}, m|M {tm+b∣0≤tm+b<M},m∣M
  • ( b 1 m 1 ∣ ) , ( b 2 m 2 ∣ ) , . . . ( b s m s ∣ ) (\dfrac{b_1}{m_1}|),(\dfrac{b_2}{m_2}|),...(\dfrac{b_s}{m_s}|) (m1b1∣),(m2b2∣),...(msbs∣)是一个电枢组(省略了 M M M)
  • ( b 1 k 1 ∣ ) , ( k 2 k 2 ∣ ) , . . . ( b t k t ∣ ) (\dfrac{b_1}{k_1}|),(\dfrac{k_2}{k_2}|),...(\dfrac{b_t}{k_t}|) (k1b1∣),(k2k2∣),...(ktbt∣)是另一个同解电枢组,
    满足 k j ∣ m j k_j|m_j kj∣mj 和 k j = m j = M k_j=m_j=M kj=mj=M
  • m 1 , m 2 , . . . m s m_1,m_2,...m_s m1,m2,...ms 是每个电枢的阶。
    b 1 , b 2 , . . . b s b_1,b_2,...b_s b1,b2,...bs是每个电枢上的一个固定槽
  • D = ( m 1 , m 2 , . . . m s ) = ( m j ) 是最大公约数 D=(m_1,m_2,...m_s)=(m_j)是最大公约数 D=(m1,m2,...ms)=(mj)是最大公约数
  • M = m 1 , m 2 , . . . m s = m j 是最小公倍数 M=m_1,m_2,...m_s=m_j是最小公倍数 M=m1,m2,...ms=mj是最小公倍数
    D D D阶电枢是最大公约电枢
    M M M阶电枢是最小公倍电枢
  • M i = M m i M_i=\dfrac{M}{m_i} Mi=miM是电枢 m i m_i mi的补绕法
  • M i ′ M_i' Mi′是电枢 m i m_i mi的补逆(补逆也是个绕法)
  • k 是 M 的一个因子 , K 是 m 的一个倍数 k是M的一个因子,K是m的一个倍数 k是M的一个因子,K是m的一个倍数
  • 电枢组的解: 电枢组合并成M阶电枢后,那个唯一直达 b 1 , . . . b s b_1,...b_s b1,...bs的槽位绕法c叫做电枢组的解。

电枢的合并

电枢的合并满足交换律和结合律

两个电枢的合并就是解两个同余方程

x=c 就是这两个同余方程组的解

( b i m i ∣ ) 和 ( b j m j ∣ ) (\dfrac{b_i}{m_i}|)和(\dfrac{b_j}{m_j}|) (mibi∣)和(mjbj∣)是电枢组中的两个电枢,如果 m 1 , m 2 m_1,m_2 m1,m2阶电枢和其上的一个槽 c c c;

满足 ( b i m i ∣ ) ⋂ ( b j m j ∣ ) = ( c m 1 , m 2 ∣ ) (\dfrac{b_i}{m_i}|)\bigcap(\dfrac{b_j}{m_j}|)=(\dfrac{c}{m_1,m_2}|) (mibi∣)⋂(mjbj∣)=(m1,m2c∣),称作电枢 m i m_i mi和 m j m_j mj合并成 m 1 , m 2 m_1,m_2 m1,m2;

合并运算记作:
( b i m i ∣ ) ⋀ ( b j m j ∣ ) (\dfrac{b_i}{m_i}|) \bigwedge (\dfrac{b_j}{m_j}|) (mibi∣)⋀(mjbj∣)

( b m ∣ ) (\dfrac{b}{m}|) (mb∣)是带有结构的集合,如果用 ⋂ \bigcap ⋂表示电枢的合并,则会失去它的结构意义,故用合取符号 ⋀ \bigwedge ⋀表示电枢的合并。

电枢的扩张和收缩

( b m ∣ ) (\dfrac{b}{m}|) (mb∣)是电枢组里的一个电枢,更改m,会让集合 ( b m ∣ ) (\dfrac{b}{m}|) (mb∣)变大或变小。

电枢的扩张

将m替换为m的因子k, 则集合 ( b m ∣ ) (\dfrac{b}{m}|) (mb∣)变大

电枢的收缩

将m替换为m的倍数K, 则集合 ( b m ∣ ) (\dfrac{b}{m}|) (mb∣)变小

收缩和扩张的关系

( b K ∣ ) ⊆ ( b m ∣ ) ⊆ ( b k ∣ ) (\dfrac{b}{K}|) \subseteq (\dfrac{b}{m}|) \subseteq (\dfrac{b}{k}|) (Kb∣)⊆(mb∣)⊆(kb∣)

b K ≤ b m ≤ b k \dfrac{b}{K} \le \dfrac{b}{m} \le \dfrac{b}{k} Kb≤mb≤kb

原版的剩余定理

{ x ≡ b 1 ( m o d m 1 ) x ≡ b 2 ( m o d m 2 ) ⋮ x ≡ b s ( m o d m s ) \begin{cases} x \equiv b_1 \pmod{m_1}\\ x \equiv b_2 \pmod{m_2}\\ \vdots\\ x \equiv b_s \pmod{m_s} \end{cases} ⎩ ⎨ ⎧x≡b1(modm1)x≡b2(modm2)⋮x≡bs(modms)

( m i , m j ) ∣ ( b i − b j ) (m_i,m_j)|(b_i-b_j) (mi,mj)∣(bi−bj)    ⟺    \iff ⟺ 方程组对模 M M M有唯一解c , x ≡ c ( m o d M ) x \equiv c \pmod M x≡c(modM)

如果M内存在两个解,则得到两解之差是M的倍数的矛盾

定理0(等价的电枢版剩余定理)

这个定理给出了解存在的判定方法

x=c 就是同余方程组的解

b 1 , b 2 , . . . b s b_1,b_2,...b_s b1,b2,...bs直达最大公约电枢D同一槽e    ⟺    \iff ⟺

最小公倍电枢 M M M中存在唯一 一个槽c直达 b 1 , b 2 , . . . b s b_1,b_2,...b_s b1,b2,...bs。

定理1(互质电枢之间的合并)

目标是找到c 和 e

c = ∑ i = 1 n b i M i M i ′ ( m o d M ) c=\displaystyle\sum_{i=1}^{n} b_iM_iM_i' \pmod M c=i=1∑nbiMiMi′(modM)
e = b j ( m o d D ) e=b_j \pmod D e=bj(modD)

方程 M i M i ′ ≡ 1 ( m o d m i ) M_iM_i'\equiv1 \pmod{m_i} MiMi′≡1(modmi) 中 M i ′ 的解法 M_i'的解法 Mi′的解法

参考初等数论简明教程.csdn中的一次同余方程

定理1.1 (槽的遍历)

当槽 b j b_j bj取遍 N m j N_{m_j} Nmj,则e取遍 N D N_D ND并且c取遍 N M N_M NM

定理2(非互质电枢之间的合并)

m 1 , . . . m s m_1,...m_s m1,...ms这些电枢如果不互质,则将每个电枢进行扩张,

电枢扩张后每个电枢的阶会变小,直到这些阶互质。

电枢组 m 1 , . . . m s m_1,...m_s m1,...ms 扩张到 k 1 , . . . k s k_1,...k_s k1,...ks ( k j ∣ m j k_j|m_j kj∣mj)

只要保持 m 1 , . . . m s = k 1 , . . . k s m_1,...m_s=k_1,...k_s m1,...ms=k1,...ks则两个电枢组的解不变。

证明

P1: ( b m j ∣ ) ⊆ ( b k j ∣ ) (\dfrac{b}{m_j}|) \subseteq (\dfrac{b}{k_j}|) (mjb∣)⊆(kjb∣)

P2: ⋂ j = 1 k ( b m j ∣ ) \bigcap_{j=1}^{k}(\dfrac{b}{m_j}|) ⋂j=1k(mjb∣) ⊆ \subseteq ⊆ ⋂ j = 1 k ( b k j ∣ ) \bigcap_{j=1}^{k}(\dfrac{b}{k_j}|) ⋂j=1k(kjb∣)

P3: 因为上式两边都是单点集,所以两边相等

P4: ⋂ j = 1 k ( b m j ∣ ) \bigcap_{j=1}^{k}(\dfrac{b}{m_j}|) ⋂j=1k(mjb∣) = = = ⋂ j = 1 k ( b k j ∣ ) \bigcap_{j=1}^{k}(\dfrac{b}{k_j}|) ⋂j=1k(kjb∣)

定理3(元素个数)

∣ ( b m ∣ ) ∣ = M m |(\dfrac{b}{m}|)|=\dfrac{M}{m} ∣(mb∣)∣=mM

例题

电枢合并的好处在于剩余问题可以逐步合并得到

更块的方法是将电枢扩张到互质的电枢组

计算量主要在计算电枢的补逆 M i ′ 上 M_i'上 Mi′上

计算:

( 2 6 ∣ ) ⋀ ( 4 8 ∣ ) (\dfrac{2}{6}|)\bigwedge(\dfrac{4}{8}|) (62∣)⋀(84∣)
D = ( 6 , 8 ) = 2 D=(6,8)=2 D=(6,8)=2
M = 6 , 8 = 24 M=6,8=24 M=6,8=24

P1: D |4-2 → \to → 有解

P2: ( 2 6 ∣ ) (\dfrac{2}{6}|) (62∣)={2,8,14,20}

P3: ( 4 8 ∣ ) (\dfrac{4}{8}|) (84∣)={4,12,20}

P4: ( 2 6 ∣ ) ⋀ ( 4 8 ∣ ) (\dfrac{2}{6}|) \bigwedge (\dfrac{4}{8}|) (62∣)⋀(84∣)= ( 20 24 ∣ ) (\dfrac{20}{24}|) (2420∣)

P5: ( 2 6 ∣ ) (\dfrac{2}{6}|) (62∣) 扩张为 ( 2 3 ∣ ) (\dfrac{2}{3}|) (32∣)={2,5,8,11,14,17,20,23}

P6: ( 2 3 ∣ ) (\dfrac{2}{3}|) (32∣) 和 ( 4 8 ∣ ) (\dfrac{4}{8}|) (84∣) 已经是互质版的电枢组了

相关推荐
sulikey1 小时前
个人Linux操作系统学习笔记6 - 操作系统与进程初识
linux·笔记·学习·操作系统·进程
unicorn312 小时前
学习学习学习
学习
XGeFei3 小时前
【Fastapi学习笔记(3)】——资源的层级关系、安全性-幂等性、Field、工厂函数
笔记·学习·fastapi
星恒随风4 小时前
Python 基础语法详解(一):从表达式、变量到数据类型
开发语言·笔记·python·学习
tedcloud1235 小时前
cc-switch评测:多AI Coding Agent管理工具详解
数据库·人工智能·sql·学习·自动化
胡图图不糊涂^_^6 小时前
测试BUG篇
学习·bug·测试
humors2218 小时前
学习方法的系统梳理与实践应用
学习·学习方法
爱讲故事的8 小时前
操作系统第一讲复习:为什么学习操作系统,以及操作系统到底在做什么?
linux·开发语言·windows·学习·ubuntu·c#
胡图图不糊涂^_^10 小时前
测试用例篇——设计测试用例的方法
笔记·学习·测试用例·判定表法·正交法生成用例测试·等价类·边界值
Fanfanaas10 小时前
C++ 继承
java·开发语言·jvm·c++·学习·算法