求方程:的解个数


分析:设,那么上述方程解的个数就与同余方程组:的解等价。


设同于方程的解分别是:,那么原方程的解的个数就是


所以现在的关键问题是求方程:的解个数。


这个方程我们需要分3类讨论:


第一种情况:


对于这种情况,如果方程的某个解设为,那么一定有,可以得到,即


所以方程的解个数就是:,也就是



第二种情况:

这样也就是说p|B,设,本方程有解的充要条件是A|t,

那么我们设t=kA,


所以进一步有:,因为,这样又转化为第三种情况了。

第三种情况:


那么我们要求指标;求指标的话又要求原根。并且奇素数p的原根也是p^a的原根,所以说求个p的原根就好了。

且如果有解,则解的个数为(A,φ(p^a))。


求指标的话就是要解决A^x ≡ B (mod p^a)的问题。由于本情况保证了(p^a, B)=1,用个Baby-step-Giant-step就

能解决问题。


方程x^A ≡ B (mod p^a)有解,当且仅当(A,φ(p^a))|ind B。ind B表示B对于p^a的任一原根的指标。





如果不知道原根与指标的现在就补一下吧:


原根部分:


定义一:设m>1,(a,m)=1,则使得成立的最小正整数r,称为a对模m的指数,或者a对模m的阶,记为


定理一:若m>1,(a,m)=1,,则


定义二:若,则a是模m的原根。


定理二:如果大于1的正整数m有原根,那么它一共有个不同的原根。


定理三:模m有原根的必要条件是m=2,4,p^a或者2p^a,其中p是奇素数。


定理四:设m>1,所有不同的奇因数是,(g,m)=1,则g是模m的原根的充要条件是:

   1<=i<=k


指标,n次剩余部分:


现在我们来研究同余式  (a,m)=1,有解的条件以及解数,注意现在的m=p^a或者2p^a,,g是模m的一个原根。


若(n,c)=d ,(a,m)=1,则上述同余式有解的充要条件是d|inda,并且在有解的条件下,解数为d。


在模m的一个简化剩余系中,n次剩余的个数是




定理一:若r通过模c的最小非负完全剩余系,则g^r通过模m的一个简化剩余系。


证明:g是模m的一个原根,则对模m两两不同余,又因为(g,m)=1,所以(g^r,m)=1

因此是模m的一个简化剩余系。


定理一:设a是一整数,(a,m)=1,若对模m的一个原根g,有一整数r存在使得下式




成立,则r就叫做以g为底的a对模m的一个指标,记为r=inda。





求同余方程x^A=B(mod m)的解个数(原根与指标)的更多相关文章

  1. 数位DP 求K进制下0~N的每个数每位上出现的数的总和

    好久没写博客了,因为感觉时间比较紧,另一方面没有心思,做的题目比较浅也是另一方面. 热身赛第二场被血虐了好不好,于是决定看看数位DP吧. 进入正题: 如题是一道经(简)典(单)的数位dp. 第一步,对 ...

  2. poj 1523Tarjan算法的含义——求取割点可以分出的连通分量的个数

    poj 1523Tarjan算法的含义——求取割点可以分出的连通分量的个数 题目大意:如题目所示 给你一些关系图——连通图,想要问你有没有个节点,损坏后,可以生成几个互相独立的网络(也就是连通分量), ...

  3. 求N的阶乘N!中末尾0的个数

    求N的阶乘N!中末尾0的个数 有道问题是这样的:给定一个正整数N,那么N的阶乘N!末尾中有多少个0呢?例如:N=10,N=3628800,则N!的末尾有两个0:直接上干货,算法思想如下:对于任意一个正 ...

  4. 扩展欧几里得 求ax+by == n的非负整数解个数

    求解形如ax+by == n (a,b已知)的方程的非负整数解个数时,需要用到扩展欧几里得定理,先求出最小的x的值,然后通过处理剩下的区间长度即可得到答案. 放出模板: ll gcd(ll a, ll ...

  5. POJ - 3415 Common Substrings(后缀数组求长度不小于 k 的公共子串的个数+单调栈优化)

    Description A substring of a string T is defined as: T( i, k)= TiTi+1... Ti+k-1, 1≤ i≤ i+k-1≤| T|. G ...

  6. POJ 3243 Clever Y (求解高次同余方程A^x=B(mod C) Baby Step Giant Step算法)

    不理解Baby Step Giant Step算法,请戳: http://www.cnblogs.com/chenxiwenruo/p/3554885.html #include <iostre ...

  7. POJ 1061 青蛙的约会(拓展欧几里得求同余方程,解ax+by=c)

    青蛙的约会 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 122871   Accepted: 26147 Descript ...

  8. POJ 2947:Widget Factory 求同余方程

    Widget Factory Time Limit: 7000MS   Memory Limit: 65536K Total Submissions: 5173   Accepted: 1790 De ...

  9. 51Nod1123 X^A Mod B 数论 中国剩余定理 原根 BSGS

    原文链接https://www.cnblogs.com/zhouzhendong/p/51Nod1123.html 题目传送门 - 51Nod1123 题意 $T$ 组数据. 给定 $A,B,C$,求 ...

随机推荐

  1. PostgreSQL(Linux)安装、启动、停止、重启

    If we don't already have PostgreSQL installed, we must install it. $ sudo apt-get install postgresql ...

  2. 搭建jfinal+maven框架

    1.创建一个maven web项目. 2.添加引用包         <dependency>             <groupId>com.jfinal</grou ...

  3. 「6月雅礼集训 2017 Day2」B

    [题目大意] 求n*n的棋盘,每行每列都有2个黑格子的方案数. n<=10^7 [题解] zzq的做法好神奇啊 行列建点,二分图 左边有i个点,右边有j个点的方案数 f[i,j] 左边有i个点, ...

  4. 也说JS脚本加载控制

    问题背景 前端采用的 iframe + html 做后台管理系统.现在js.jquery插件非常多,每次页面都是引用就类似这样: <script src="../Scripts/jqu ...

  5. Python/CMD 文件备份

    1.使用Python压缩文件并另存 import zipfile, os #备份文件ZIP格式: folder 目标文件夹 : Targetfolder:另存地址 def backuptozip(fo ...

  6. P1029 最大公约数和最小公倍数问题

    题目描述 输入二个正整数x0,y0(2<=x0<100000,2<=y0<=1000000),求出满足下列条件的P,Q的个数 条件: 1.P,Q是正整数 2.要求P,Q以x0为 ...

  7. KDJ回测

    # -*- coding: utf-8 -*- import os import pandas as pd # ========== 遍历数据文件夹中所有股票文件的文件名,得到股票代码列表stock_ ...

  8. rest_framework 认证流程

    一.基本流程 rest_framework框架是基于CBV基础开发的(VPIView(View)),所以基本流程与CBV流程相似 当我们的请求发来后,会走as_views,执行view里面的方法,最开 ...

  9. 架设Hmailserver+webmail邮件服务器

    架设Hmailserver+webmail邮件服务器   在安裝Hmailserver前先安裝Apache.php.mysql,如果你想懶點直接到http://www.phpnow.org下載phpn ...

  10. [BZOJ1176][Balkan2007]Mokia cdq+树状数组

    1176: [Balkan2007]Mokia Time Limit: 30 Sec  Memory Limit: 162 MBSubmit: 3134  Solved: 1395[Submit][S ...