首页 > 其他分享 >原根&离散对数

原根&离散对数

时间:2024-03-21 21:47:23浏览次数:10  
标签:phi gcd 原根 离散 ind 对数 mod equiv

原根&离散对数

设 \(m>1\) \(\gcd(a,m)=1\) ,使 \(a^r\equiv 1(mod \ m)\) 的最小 \(r\) 是 \(a\) 对 \(m\) 的阶,记作 \(\delta_m(a)\)

定理一:设 \(m>1\),且 \(gcd(a,m)=1\),\(a^n\equiv1(mod \ m)\),则 \(\delta_m(a)|n\)

定理一推论:\(\delta_m(a)|\phi(m)\)

定理二:\(gcd(a,m)=1\),\(a^x\equiv a^y(mod \ m)\)的充要条件是 \(x\equiv y(mod \ \delta_m(a)\)

定理三:\(d\in N^+,\Large \delta_m(a^d)=\frac{\delta_m(a)}{\gcd(\delta_m(a),d)}\)

原根

设 \(m\in N^+,a \in Z,\delta_m(a)=\phi(m)\),称 \(a\) 为模 \(m\) 的原根

定理一:一个正整数有原根的充要条件是它为 \(2,4,p^e,2p^e\),\(p\) 为奇素数,\(e\) 为正整数

定理二:设 \(g\) 是 \(m\) 的原根,则 \(g^d\) 是 \(m\) 的原根的充要条件是 \(\gcd(d,\phi(m))=1\);每一个有原根的正整数 \(m\) 有 \(\phi(\phi(m))\) 个原根

定理三:\(g\) 是 \(m\) 的原根,则

\[\{x|x=g^y\mod m,y\in[1,phi(m)]\}=\{x|x\leq m,gcd(x,m)=1\} \]

定理三四推论:\(\{g|g是m原根\}\subsetneqq\{x|x\leq m,gcd(x,m)=1\}\subsetneqq [1,m]\) 大小分别为 \(\phi(\phi(m)),\phi(m),m\)

定理四:\(m>1\),\(\phi(m)\)的所有质因数 \(p_1,p_2,...,p_k\),\(gcd(g,m)=1\)则 \(g\) 是 \(m\) 的原根的充要条件是 \({\Large g^{\frac{\phi(m)}{p_i}} \not \equiv 1}(mod \ m),i\in [1,k]\)

求法

最小正原根不超过 \(\large m^{\frac{1}{4}}\)

指标

设 \(g\) 是 \(m\) 的原根,若 \(g^r \equiv a(mod \ m)\) 则称 \(r\) 是以 \(g\) 为底 \(a\) 对 \(m\) 的指标,记作 \(ind(a)\)

性质一:\(a\equiv b(mod \ m)\leftrightarrow ind(a)\equiv ind(b)(mod \ \phi(m))\)

性质二:\(ind(a*b)\equiv ind(a)+ind(b)(mod \ \phi(m))\)

性质三:\(ind(a^n)\equiv n\times ind(a)(mod \ m)\)

指标的计算

Baby-Step,Giant-Step 算法

解决 \(a^x\equiv b(mod \ m),\gcd(a,m)=1\)的方程

因为 \(a^\phi(m)\equiv1(mod \ m)\) 所以通解的形式一定是 \(k \phi(m) + b\)

所以可以分块解决 \(O(\sqrt{m})\)

第二类指数同余方程

\(x^k\equiv b(mod \ p),p为素数\)

标签:phi,gcd,原根,离散,ind,对数,mod,equiv
From: https://www.cnblogs.com/life-of-a-libertine/p/18088293

相关文章

  • DSTFT-STFT 离散短时傅里叶变换-短时傅里叶变换 详细解析
    目录STFT基本原理数学表达式STFT的数学定义STFT组件的理解时间-频率分辨率的权衡窗函数窗函数的作用常见的窗函数窗函数的选择DSTFT基本概念数学表达式DSTFT各组件的理解时间-频率分辨率权衡COLA条件COLA条件的基本定义数学表达重要性1.减少信息丢失2.......
  • 使用java代码对数据库中的表单数据进行:增,删,改,查,操作。
    1、数据库表单如下:2、在项目中创建TestLinkMysql.java类,用于数据库的增删改查操作。代码如下: packageLink.Mysql;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLExcept......
  • 【工程应用九】再谈基于离散夹角余弦相似度指标的形状匹配优化(十六角度量化+指令集加
    继去年上半年一鼓作气研究了几种不同的模版匹配算法后,这个方面的工作基本停滞了有七八个月没有去碰了,因为感觉已经遇到了瓶颈,无论是速度还是效率方面,以当时的理解感觉都到了顶了。年初,公司业务惨淡,也无心向佛,总要找点事情做一做,充实下自己,这里选择了前期一直想继续研究的基于......
  • Springboot+Redis:实现缓存 减少对数据库的压力
    ......
  • 使用位运算对数据或文件进行加密
    数据加密解密是一个常用的功能,如果你不希望让别人看到文件中的内容,可以通过密钥(也称”密码“)将文件的内容加密。比如文本文件(.txt),加密前的内容是能够读懂的,加密后的内容是”乱码“,都是一些奇怪的字符,根本无法阅读。数据加密解密的原理也很简单,就是使用异或运算。请先看下面的......
  • 算法学习笔记(46): 离散余弦变换(DCT)
    前置知识:离散傅里叶变换傅里叶变换在上文中更多的是OI中的理解以及应用。但是傅里叶变换奥秘还很多。回顾\(\omega_n\)在傅里叶变换中的定义:\(e^{i\frac{2\pi}n}\),存在\(\omega_n^n=1\)的性质。意味着离散傅里叶变换实际上是周期性的,这也变相的解释了为什么存在循环......
  • Matlab|【分布鲁棒】数据驱动的多离散场景电热综合能源系统分布鲁棒优化算法
    目录 主要内容   1.1 主要难点-分布鲁棒优化1.2 程序求解步骤-主子问题迭代   部分结果   下载链接 主要内容   本程序主要对《基于场景聚类的主动配电网分布鲁棒综合优化》-高海淑的方法复现,应用到综合能源电热微网方向,采用拉丁超立方抽样对不同场......
  • 后端返回的数据结构可能是多样的,前端需要对数据进行处理,以适应页面展示的需求。请给出
    在前端开发中,针对后端返回的多变数据结构进行处理以适应页面展示需求的最佳实践包括以下几个方面:定义清晰的数据模型:在前端根据UI设计和功能需求明确所需的数据结构,并创建对应的JavaScript对象模型(或使用TypeScript等类型语言提供静态类型检查)。这有助于前端开发者预先了解......
  • 一维时间序列的离散正交Stockwell变换和离散余弦Stockwell变换
    MATLAB环境下一维时间序列信号的离散正交Stockwell变换和离散余弦Stockwell变换。Stockwell变换是一种对短时傅立叶变换STFT和小波变换WT扩展的时频分析方法。Stockwell变换将傅里叶变换的绝对相位保持特性与WT的频率相关分析和多分辨率特性结合起来。离散正交Stockwell变换......
  • 05 games101-光栅化(三角形的离散化)
    05光栅化(三角形的离散化)三角形三角形的性质和优点:●最基础的多边形●其他图形可以拆解为三角形●三角形内一定是平面●内外的定义很明确●定义三个顶点后,三角形内可以插值光栅化(Rasterization)光栅化关键:判断一个像素和三角形的位置关系(像素中心点与三角形的位......