中国剩余定理(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 ...
随机推荐
- Android之下拉刷新的ListView
不废话,代码里面注释很详细,直接上代码: 自定义的RefreshableListView代码: public class RefreshableListView extends ListView im ...
- Excel—使用条件格式标注今日值班者
如下图所示值班表: Step1:选中A2:G2,调出条件格式,在条件格式中,使用公式确定单元格. Step2: 在公式栏中填入以下公式: =TEXT(TODAY(),"aaaa") ...
- jq 个性的隔行变色
效果图大致这样: 我的html格式部分这样:/*不过他们都说我的dom结构不太合理,同意.BUT,我就是不想写表格而写成的这样的,所以后面jq部分也要迁就了*/ <div class=&qu ...
- MFC去掉标题栏
在初始化的时候加入以下函数 //去掉标题栏 ModifyStyle(WS_CAPTION, NULL, SWP_DRAWFRAME );
- vim 添加php自动补全 并格式化代码
自动补全,修改/etc/vimrc的配置 vim /etc/vimrc 添加: filetype plugin on autocmd FileType php set omnifunc=phpcomp ...
- springmvc.xml的基本配置
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w ...
- 3. K线基础知识三
1. 阴线 证券市场上指开盘价高于收盘价的K线,K线图上一般用淡蓝色标注,表示股价下跌,当收盘价低于开盘价,也就是股价走势呈下降趋势时,我们称这种形态的K线为阴线. 中间部分实体为蓝色,此时,上影线的 ...
- 我的js函数库(持续更新)
常用js初始化函数 function id(obj) { return document.getElementById(obj); } function bind(obj, ev, fn) { if ...
- [CodeWars][JS]实现链式加法
在知乎上看到这样一个问题:http://www.zhihu.com/question/31805304; 简单地说就是实现这样一个add函数: add(x1)(x2)(x3)...(xn) == x1 ...
- Qt 程序打包发布
Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,Qt 官方开发环境里自带了一个工具:windeployqt.exe.在Qt安装目录如:C:\Qt\Qt5.7. ...