中国剩余定理(Chinese Remainder Theorem)
我理解的中国剩余定理的含义是:给定一个数除以一系列互素的数${p_1}, \cdots ,{p_n}$的余数,那么这个数除以这组素数之积($N = {p_1} \times \cdots \times {p_n}$)的余数也确定了,反之亦然。
用表达式表示如下:
\[\begin{array}{l}
x \equiv {a_1}(\bmod {p_1})\\
{\rm{ }} \vdots \\
x \equiv {a_n}(\bmod {p_n})
\end{array}\]
那么任何满足条件的x对于模N都是同余的。
其中满足条件的最小的x可以表示为:
\[x = {a_1}{b_1}\frac{N}{{{p_1}}} + \cdots + {a_n}{b_n}\frac{N}{{{p_n}}}\]
其中,${b_i}$为$\frac{N}{{{p_i}}}$模${p_i}$的数论倒数(即${b_i}\frac{N}{{{p_i}}} \equiv 1(\bmod {p_i})$)
用映射关系也可以表示为:
\[x\bmod N \mapsto (x\bmod {p_1},...,x\bmod {p_n})\]
这个性质可以推广到任何可交换环。实际上定义了一个环同构(ring isomorphism)。如在整数环上:
\[\mathbb{Z}/N\mathbb{Z} \cong \mathbb{Z}/{p_1}\mathbb{Z} \times \ldots \times \mathbb{Z}/{p_1}\mathbb{Z}\]
这意味着,在$\mathbb{Z}/N\mathbb{Z}$上的一系列算术操作可以在每个$\mathbb{Z}/{p_i}\mathbb{Z}$上分开做,再利用同构得到结果。
后面补充一些最近看的关于数论的知识。
- 环和理想(Rings and Ideals)
$R$是一个环,$R$的理想$I$是$R$中的一个非空子集,对于加法以及$R$中任一元素的乘法是封闭的。
即,对于所有的$a,b \in I$,都有$a + b \in I$;对于所有的$a\in I$,以及所有的$r \in R$,都有$ar \in I$.
主理想(Principal Ideal)是由单个元素产生的(R中的单个元素与R中的每个元素相乘产生)。若一个环中所有的理想都是主理想,那么这个环称为主理想环(Principal Ideal Ring,PIR)。若两个元素$a$和$b满足$a - b \in I$,那么说它们模$I$同余。
商环(quotient ring) $R/I$是通过在$R$上定义$I$的陪集上进行加法和乘法操作得到的:
\[\left( {a + I} \right) + \left( {b + I} \right) = \left( {a + b + I} \right),\left( {a + I} \right) \times \left( {b + I} \right) = \left( {ab} \right) + I\]
举个例子,整数域$\mathbb{Z}$是环,$2\mathbb{Z}$相当于由2产生的一个主理想。$\mathbb{Z}/2\mathbb{Z}$是一个对应的商环。
2.主理想整环(Principal Ideal Domain,PID)
整数域$\mathbb{Z}$就构成一个PID。典型的例子还包括高斯整数 $\mathbb{Z}[i] \buildrel \Delta \over = \left\{ {a + bi:a,b \in \mathbb{Z}} \right\}$和艾森斯坦整数(Eisenstein integer) $\mathbb{Z}[\omega] \buildrel \Delta \over = \left\{ {a + b\omega:a,b \in \mathbb{Z}} \right\}$.
高斯整数在复平面上构成了一个正方形点阵,而艾森斯坦整数在复平面上构成了一个三角点阵。高斯整数有四个单位元$\left\{ { \pm 1, \pm i} \right\}$,艾森斯坦整数有六个单位元$\left\{ { \pm 1, \pm \omega , \pm {\omega ^2}} \right\}$
中国剩余定理(Chinese Remainder Theorem)的更多相关文章
- Chinese remainder theorem again(中国剩余定理)
C - Chinese remainder theorem again Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:% ...
- hdu 1788 Chinese remainder theorem again(最小公倍数)
Problem Description 我知道部分同学最近在看中国剩余定理,就这个定理本身,还是比较简单的: 假设m1,m2,-,mk两两互素,则下面同余方程组: x≡a1(mod m1) x≡a2( ...
- DHU 1788 Chinese remainder theorem again 中国剩余定理
Chinese remainder theorem again Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 ...
- HDU1788 Chinese remainder theorem again【中国剩余定理】
题目链接: pid=1788">http://acm.hdu.edu.cn/showproblem.php?pid=1788 题目大意: 题眼下边的描写叙述是多余的... 一个正整N除 ...
- HDU——1788 Chinese remainder theorem again
再来一发水体,是为了照应上一发水题. 再次也特别说明一下,白书上的中国剩余定理的模板不靠谱. 老子刚刚用柏树上的模板交上去,简直wa出翔啊. 下面隆重推荐安叔版同余方程组的求解方法. 反正这个版本十分 ...
- 【数论】【中国剩余定理】【LCM】hdu1788 Chinese remainder theorem again
根据题目容易得到N%Mi=Mi-a. 那么可得N%Mi+a=Mi. 两侧同时对Mi取余,可得(N+a)%Mi=0. 将N+a看成一个变量,就可以把原问题转化成求Mi的LCM,最后减去a即可. #inc ...
- HDU 1788 Chinese remainder theorem again
题目链接 题意 : 中文题不详述. 思路 : 由N%Mi=(Mi-a)可得(N+a)%Mi=0;要取最小的N即找Mi的最小公倍数即可. #include <cstdio> #include ...
- HDU 1788 Chinese remainder theorem again 中国剩余定理
题意: 给定n,AA 以下n个数m1,m2···mn 则有n条方程 res % m1 = m1-AA res % m2 = m2-AA 问res的最小值 直接上剩余定理,嘿嘿 #include< ...
- Chinese remainder theorem
https://en.wikipedia.org/wiki/Chinese_remainder_theorem http://planetmath.org/ChineseRemainderTheore ...
随机推荐
- 现代软件工程作业-- GitHub的学习
1.注册github账号: 2.在github上面新建一个名为HelloWord的项目: 3.将本组的其他成员纳入到HelloWorld中: 4.复制远端仓库的地址: 5.在本地的git bash中使 ...
- php SESSION跨域问题
这段时间随着项目功能的扩展,慢慢接触到了跨域方面的知识,遇到的更多的问题也是前端与后端交互的时候跨域问题.关于js跨域的问题我会在其他分类里面写.这里记录我今天遇到的php session跨域问题 当 ...
- JS这些代码你都不会,你还有什么好说的!!!
都说自己工资低的,先看看这些代码你能写出来不?这些都不会,你还嫌工资?
- HDOJ 1358
Period Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- [转]Oracle10g数据库自动诊断监视工具(ADDM)使用指南
第一章 ADDM简介 在Oracle9i及之前,DBA们已经拥有了很多很好用的性能分析工具,比如,tkprof.sql_trace.statspack.set even ...
- Asp.Net Core--发布到IIS
翻译如下: 支持的操作系统 Windows 7及更高版本 Windows Server 2008 R2及更高版本 概念上,本文档中描述的IIS配置也适用于在Nano Server IIS上托管ASP. ...
- php编译 :virtual memory exhausted: Cannot allocate memory
有时候用vps建站时需要通过编译的方式来安装主机控制面板.对于大内存的VPS来说一般问题不大,但是对于小内存,比如512MB内存的VPS来说,很有可能会出现问题,因为编译过程是一个内存消耗较大的动作. ...
- react+redux官方实例TODO从最简单的入门(5)-- 查
上一篇文章<改>实现了,最后一个功能--<查>! 这个查是稍微要复杂一点的功能,官方实现的就是一个过滤数组的效果,然后展示出来,这里有3个状态,all,completed,ac ...
- collections 模块(namedtuple, deque, Counter )
基本介绍 我们都知道,Python拥有一些内置的数据类型,比如str, int, list, tuple, dict等, collections模块在这些内置数据类型的基础上,提供了几个额外的数据类型 ...
- CRUD查询
简单查询: 1.最简单的查询 select*form 表名; *查所有的列select*form info 2.查询指定列 select code,name form info 3.修改结果集的列名 ...