高次同余方程式的解数及解法
定理一:
若是k个两两互质的正整数,,则同余式
(1)
与同余式组
(i=1,2,3,...,k) (2)
等价,并且若用表示对模的解数,T表示(1)式对模m的解数,
则:
所以求多项式的解可以用上述方法,先分解分别求出各个解再合并。
定理二:p是素数,r>=2是整数,是整系数多项式,设是同余方程
的一个解,以表示的导数。
(1)若,则存在整数t,使是同于方程的解。
(2)若,并且,则对于t=0,1,2,3,...,p-1,中的
x都是方程的解。
2013年全国邀请赛长沙赛区的E题就是利用上述的定理。
题目:Special equations
题目大意 :
给定函数 , pri为质数,求一个x使得,, 如果没有,输出No Solution.
首先求得所有的i,使得
然后分别验证所有的 , 是否满足
由于在第一次枚举的时候保留下来的i不会很多,第二次暴力枚举的时候复杂度不会很大。
#include <iostream>
#include <string.h>
#include <stdio.h>using namespace std;
typedef long long LL;const int N=105;LL a[N];
LL temp[N];LL Equ(LL n,LL x)
{if(n==1) return a[1]*x+a[0];else if(n==2) return a[2]*x*x+a[1]*x+a[0];else if(n==3) return a[3]*x*x*x+a[2]*x*x+a[1]*x+a[0];else if(n==4) return a[4]*x*x*x*x+a[3]*x*x*x+a[2]*x*x+a[1]*x+a[0];
}int main()
{LL T,n,i,j,p,k,tt=1;cin>>T;while(T--){cin>>n;for(i=n;i>=0;i--)cin>>a[i];cin>>p;k=0;for(i=0;i<p;i++){if(Equ(n,i)%p==0) {temp[k++]=i;}}if(k==0){printf("Case #%I64d: No solution!\n",tt++);continue;}LL ret=-1;for(i=0;i<k;i++){bool flag=0;for(j=0;j<p;j++){LL x=(temp[i]+j*p);if(Equ(n,x)%(p*p)==0){ret=x;flag=1;break;}}if(flag) break;}if(ret==-1){printf("Case #%I64d: No solution!\n",tt++);continue;}printf("Case #%I64d: %I64d\n",tt++,ret);}return 0;
}
高次同余方程式的解数及解法相关推荐
- 信息安全数学基础-素数模高次同余方程 2021-10-09
8.素数模高次同余方程 1. 素数模的高次同余方程 问题的引出 一般素数p模同余方程 f ( x ) = a 0 x n + . . . + a n ≡ 0 ( m o d p ) , p 不 整 除 ...
- (扩展)BSGS与高次同余方程
前言: 今天更BSGS算法.俗称大步小步算法(Big-Step G--Step),又称拔山盖世.北上广深.白色狗屎 . 问题: 求解指数同余方程:ax≡b(modp)a^{x}\equiv b(mod ...
- 数论 —— 高次同余方程与 BSGS 算法
[概述] BSGS(Baby Step Giant Step)算法,又称大小步算法,其主要用于解形如 的高次同余方程中的 x,其核心思想是分块. 当 A 与 C 互质时,通过费马小定理: 可知,当 ...
- 数学 ( 解高次同余方程 )——Discrete Logarithm Problem ( UVA 7457 )
题目链接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show ...
- 同余——同余方程+线性同余方程+高次同余方程
传送门:203. 同余方程 - AcWing题库 思路:应用欧几里得算法求 代码: #include<bits/stdc++.h> using namespace std; typedef ...
- POJ3243 Clever Y 解 高次同余方程
解高次同余方程A^x≡B(mod C)算法流程 S1:i从0到100循环,如果满足A^i≡B(mod C),那么i就为所求,否则继续S2: S2:令d=0,D=1,执行如下循环: while((tmp ...
- 高次同余式的解数和解法
索引 (解数)定理1:设m1,m2,⋯,mk∈Z>0{{m}_{1}},{{m}_{2}},\cdots ,{{m}_{k}}\in {{\mathbb{Z}}_{>0}}m1,m2, ...
- 洛谷OJ上的A+B花(zhuang)式(bi)解法
转眼间快到了8月,一想自己都毕业好久了,很怀念曾经在各大OJ上刷题的时光,今天无意在一个算法群里看到最近有个叫洛谷的oj网站貌似蛮火的,于是注册了一个下进去看一看,顺手打开了A+B problem,然 ...
- NOI数学:二次同余方程的解法
高精度取模 高精度取模_to_more_excellent的博客-CSDN博客_c++高精度取模 C++ P1082 同余方程 C++ P1082 同余方程_ice_word的博客-CSDN博客_c+ ...
最新文章
- linux下mkdir
- Tensorflow实现MNIST数据自编码(1)
- Method Area(方法区)
- 最简单的卸载vrv方法_低端赤道仪粗对极轴最简单方法
- JAVA仿真之银行出纳员
- native关键字(涉及本地方法栈)
- 把足球还给市场!市场不要你要吗?
- AudioClip 参数解析
- win10无法装载iso文件_教你用win10自带虚拟光驱打开iso镜像文件的方法
- win10u盘被写保护怎么解除_win10系统U盘提示磁盘被写保护的解决办法
- 解决CRMEB跨域问题
- 用母函数(生成函数)求解整数拆分问题
- 常见网络故障及其解决办法
- 斗鱼房间信息自动化爬取
- 批处理命令和常用脚本
- 【C++】输入的几种方式
- 1024 程序员节官方剧透:重磅大咖再聚,共话中国技术新生态
- 百度云服务器网络检查,百度推出网站安全监测平台,为服务器提供安全漏洞扫描...
- Android材料设计之材料主题
- 架构活动中风险敞口的预估