首页 > 其他分享 >【数论】同余 学习笔记

【数论】同余 学习笔记

时间:2023-12-02 14:55:41浏览次数:40  
标签:lfloor 方程 frac gcd 数论 笔记 int ax 同余

同余

定义

费马小定理

定理内容:若 \(p\) 是质数,则有:$ \forall a \in Z, a ^ p \equiv a \pmod p$。
推论:当 \(\gcd(a,p) = 1\) 时,\(a ^ {p - 1} \equiv 1 \pmod p\)。

裴蜀定理及拓展欧几里德算法

裴蜀定理:\(\forall a,b \in Z\),一元二次不定方程 \(ax + by = \gcd(a,b)\) 有整数解。
逆定理:若 \(d\) 是 \(a,b\) 的公约数,且 \(\exist x,y \in Z, ax + by = d\),则 \(d = \gcd(a,b)\),特殊的,\(d = 1\) 时 \(a,b\) 互质。
可以用扩展欧几里德算法求出不定方程的一组解,方法如下:

  1. 根据欧几里德算法,\(ax + by = d = \gcd(a, b) = \gcd (b, a \bmod b) = d'\),设 \(x'b + y'(a - b \lfloor \frac{a}{b} \rfloor) = d'\)
  2. 当 \(a' | b'\) 即 \(a \bmod b = 0\) 时,欧几里德定理求出 \(\gcd(a,b) = d' = b\),则显然 \(x'=1,y'=0\) 是一组合法解, \(1 \times b' + 0 \times 0 = b'\)。
  3. 当 \(x'\) 与 \(y'\) 已求出时,\(d' = x'b + y'(a - b \lfloor \frac{a}{b} \rfloor) = ay' + b(x' - \lfloor \frac{a}{b} \rfloor y') = d\),则可求出 \(x = y', y = x' - \lfloor \frac{a}{b} \rfloor y'\)。
  4. 递归即可求出原方程的一组解。

代码实现如下:

int exgcd(int a, int b, int &x, int &y)
{
    if (b == 0)
    {
        x = 1, y = 0;
        return a;
    }
    int d = exgcd(b, a % b, x, y);
    int t = x;
    x = y, y = t - (a / b) * y;
    return d;
}

求解一元二次不定方程

设关于 \(x,y\) 的方程为:\(ax + by = c\), \(\gcd(a, b) = d\)

  1. \(d \nmid c\)时,此时方程无解。
  2. 设 \(t = c / d\),则先求出 \(ax' + by' = d\) 的解 \(x', y'\),对等式两边乘以 \(t\),求出 \(x = tx', y = ty'\)。

容易发现,若 \(x,y\) 是原方程的一组解,则 \(x = x + \frac{b}{d}, y = y - \frac{b}{d}\) 也是原方程的一组解。

标签:lfloor,方程,frac,gcd,数论,笔记,int,ax,同余
From: https://www.cnblogs.com/JXOIer-zaochen/p/17871596.html

相关文章

  • Linux学习笔记
    linux12345真实机中安装CentOS(一)真实机中安装CentOS(二)虚拟机VirtualBox安装CentOS8,并配置网络VirtualBox中复制多个服务器并配置不同的ipUbuntu入门CentOS_ServerwithGUI入门Linux分区Linux学习技巧常用命令:复制、剪切、分页、软链接常用命令:文件检......
  • 《信息安全系统设计与实现》第十三周学习笔记
    《信息安全系统设计与实现》第十三周学习笔记第十四章MySQL数据库系统MySQL简介MySQL是一个关系数据库系统在关系数据库中,在关系数据库中,数据存储在表中。每个表由多个行和列组成。表中的数据相互关联。表也可能与其他表有关联。关系结构使得可在表上运行查询来检索信息并......
  • 【python笔记】弱引用weakref
    参考书籍:《深度学习入门——自制框架》[日]斋藤康毅强引用会出现循环引用的情况classobj(): passa=obj()#使用赋值运算,引用计数加1b=obj()c=obj()#执行到这里,a、b、c的引用计数都为1a.b=b#被对象强引用,引用计数加1b.c=cc.a=a#执行到这里,a、b、......
  • 反演与容斥 学习笔记
    反演与容斥学习笔记二项式反演函数\(f,g\),有以下结论:\[f_k=\sum_{i=0}^k\binom{k}{i}g_i\Longleftrightarrowg_k=\sum_{i=0}^k(-1)^{k-i}\binom{k}{i}f_i\]证明:考虑右式\[\begin{aligned}&\sum_{i=0}^k(-1)^{k-i}\binom{k}{i}f_k\\=&\sum_{i=0......
  • LLM 学习笔记-transformers库的 PreTrainedModel 和 ModelOutput 到底是什么?
    闲言碎语我在刚开始接触huggingface(后简称hf)的transformers库时候感觉很冗杂,比如就模型而言,有PretrainedModel,AutoModel,还有各种ModelForClassification,ModelForCausalLM,AutoModelForPreTraining,AutoModelForCausalLM等等;不仅如此,还设计了多到让人头皮发麻的各......
  • 【Android逆向】一些零碎的笔记
    *在/sdcard/下的文件无法执行,必须将其拷贝到其它位置执行,如/data/目录,/data/目录中是system分组,可以执行程序;*每个应用都会创建一个对应的应用用户,如:cn.abcpiano.pianist包名的应用,创建了一个u0_a147用户;* getpropro.product.cpu.abi ......
  • 笔记06:循环和字符串
    笔记06:循环while循环whileconditionisTrue: statement(s) ifcondition: break else:continueelse:break语句跳出循环体continue语句跳出循环体并回到循环体的判断位置else语句当循环正常结束时,进行else语句for循环forvariablein可迭代对象: statement(s......
  • 20211326学习笔记12
    第十四章数据库系统一、知识点归纳(一)MySQL简介MySQL(MySQL2018)是一个关系数据库系统(Codd1970)c在关系数据库中,数据存储在表中。每个表由多个行和列组成。表中的数据相互关联。表也可能与其他表有关联。关系结构使得可在表上运行查询来检索信息并修改数据库中的数据。关系......
  • 梦断代码 读书笔记03
    第9章方法IBM执行强制进度纪律的成功基于两条原则:1)计划是强制性的2)计划必须符合现实情况----“从底向上”,依据那些负责按计划执行的程序员的经验和知识而来,而不是“从顶至下”,靠管理者拍脑袋或对市场的期望而来2001年17位领军人物,提出了敏捷软件开发宣言,向这种笨重的CMM宣战,从此......
  • 《信息安全系统设计与实现》学习笔记12
    《信息安全系统设计与实现》学习笔记12第十四章MySQL数据库系统MySQL简介MySQL(MySQL2018)是一个关系数据库系统(Codd1970)。在关系数据库中,数据存储在表中。每个表由多个行和列组成。表中的数据相互关联。表也可能与其他表有关联。关系结构使得可在表上运行查询来检索信息......