【关于 A^x = A^(x % Phi(C) + Phi(C)) (mod C) 的若干证明】【指数循环节】

原文地址:http://hi.baidu.com/aekdycoin/item/e493adc9a7c0870bad092fd9
曾经看过如下一个公式:

以上的公式如果第一次见到,难免有不少疑惑:
为什么可以这么写?限制条件为什么是x >= Phi(C),这个公式为什么正确?
今天突发奇想,在纸上YY以后得到了以下证明(个人证明,如果有问题欢迎提出)
定理 1:
对于一个数对(A,C) 必然存在一个最小的正整数 L,满足

其中SPOS 是一个大于等于0的整数(下面具体介绍)
我们称L 为(A,C) 的最小循环节长度
证明:
根据鸽巢原理,得到在x >= C 后必然出现循环,从而定理得证.
定理 2:
对于数对 (A,C) 下面的公式必然成立

其中 k >= 0
既L 的任意倍数均为一个新的循环节长度.
证明:
根据定理1,不难得证.
定理 3:
对于数对 (A,C) 必然存在 一个最大的SPOS >=0 ,满足
(1)    若x属于区间 [0,SPOS -1] 内,得到的一个剩余系的长度为SPOS;
(2)    该剩余系和x属于[SPOS,+oo]的剩余系的交集为空!
证明:
对于一个SPOS,由于[0,SPOS-1]内不存在循环,所以x属于[0,SPOS-1]内得到的值是唯一的.
而第二点的证明也不难,因为如果不为空,那么必然可以缩小SPOS的值.
定理 4:
对于数对 (A,C) 若 (A,C) == 1,那么 L | Phi(C)
证明:
显然可以由欧拉公式,得到
A^Phi(C) = 1 (mod C)
而A^0 = 1 (mod C),于是出现了循环
由定理2,该定理得证.
定理5:
对于数对 (A,C) 若 A|C
那么有
SPOS >= CNT
其中CNT为满足  A^CNT | C的最大的正整数
下面分2个情况
(1) A^CNT == C
果断显然成立
(2) A^CNT  * B = C
于是我们假设对于[0,CNT] 内存在某个数i,有
A^i = A^x (mod C)
而由于x > CNT (因为[0,CNT]内不存在循环)
所以
A^CNT * A^(x - CNT) = A^i (mod A^CNT * B)
显然如果 i < CNT
那么是不可能有解的
因为(A^CNT, A^CNT * B) | A^i 显然不成立
于是Spos >= CNT 得证
定理 6:
对于一个数对 (A,C) 若存在

那么有 L | M
根据定理1,2 不难得到.
好了,上面写了那么多,是为了介绍 循环节的基本定理
下面开始正题,开始公式的证明
我们对于A 进行分解,得到素因子集合

下面我们把素因子分为2类
(1)    (Pi,C) == 1
(2)    (Pi,C) != 1
对于第一类情况,我们容易由定理4知道对于每一个 Pi,得到了Li (  数对 (Pi,C) 的最小循环节长) 必然是 Phi(C) 的因子
对于第二类情况,由定理5,”消去 因子”,转化为第一类的情况.得到了 这类的素因子Pi 的Li 依然为Phi(C) 的因子

@2011-01-11 对于第二类情况的更新

由循环定义得到

(Pi^ci)^x = (Pi^ci)^(x + Li) (mod C) (x >= spos)

那么我们假设C = Pi^CNT * B, 其中 (B, Pi) = 1

那么

(Pi^ci)^x = (Pi^ci)^(x + Li) (mod Pi^CNT * B)

同时消去Pi因子,最终可以得到:

[Pi^a] * [Pi^ci]^b = [Pi^a] * [Pi^ci]^b * [Pi^ (ci  * Li)] (mod B)

(Pi^a, B) = 1,逆元存在,2边同时乘上 Pi^a的逆元

[Pi^ci]^b = [Pi^ci]^b * [Pi^ (ci  * Li)] (mod B)

===>

[Pi^ci] ^b = [Pi^ci] ^ (b + Li) (mod B)

Li 为Phi(B)的因子,B为C的因子,既

Li | Phi(B), B| C

下面我们构造所有素因子的循环,既求他们的LCM,那由于定理6不难知道,(A,C) 的最小循环节长 L | LCM(L1,L2…LK)
而Li |Phi(C)
所以 L | Phi(C)
之后由定理1,2 公式得证.
推荐题目:
http://acm.fzu.edu.cn/problem.php?pid=1759
Problem 1759 Super A^B mod C  直接运用公式
http://acm.hdu.edu.cn/showproblem.php?pid=3221
2009年shanghai B,得到DP以后利用公式
http://acm.hdu.edu.cn/showproblem.php?pid=2837
Calculation 递归,注意细节
PS.  标程在某个细节处理错误,可是数据是对的.

【转】【关于 A^x = A^(x % Phi(C) + Phi(C)) (mod C) 的若干证明】【指数循环节】的更多相关文章

  1. CH BR13数学(啥?-a^b≡a^b mod phi(p)+phi(p)(mod p)(b>=phi(p))公式)

    啥? Beta Round #13 (数学专场) 背景 有人写了一个RSA加密给我玩. 描述 我赌5毛前面两题的内容也就开头几句话平时会用到. 还是做点具体的东西吧. 求c^d Mod N 输入格式 ...

  2. P4139 上帝与集合的正确用法[欧拉定理]

    题目描述 求 \[ 2^{2^{2\cdots}} ~mod ~p \] 简单题,指数循环节. 由于当\(b>=\psi(p)\)时,有 \[ a^b=a^{b ~mod~\psi(p)+\ps ...

  3. UVA 10692 Huge Mods(指数循环节)

    指数循环节,由于a ^x = a ^(x % m + phi(m)) (mod m)仅在x >= phi(m)时成立,故应注意要判断 //by:Gavin http://www.cnblogs. ...

  4. hdu 2837 Calculation 指数循环节套路题

    Calculation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  5. FZU 1759 Super A^B mod C 指数循环节

    Problem 1759 Super A^B mod C Time Limit: 1000 mSec    Memory Limit : 32768 KB  Problem Description G ...

  6. hdu 5895 Mathematician QSC 指数循环节+矩阵快速幂

    Mathematician QSC Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Othe ...

  7. 牛客OI测试赛 F 子序列 组合数学 欧拉降幂公式模板

    链接:https://www.nowcoder.com/acm/contest/181/F来源:牛客网 题目描述 给出一个长度为n的序列,你需要计算出所有长度为k的子序列中,除最大最小数之外所有数的乘 ...

  8. 【BZOJ 2818】Gcd - 筛法求素数&phi()

    题目描述 给定整数,求且为素数的数对有多少对. 分析 首先筛出所有的素数. 我们考虑枚举素数p,统计满足的个数,等价于统计的个数,即统计以内满足互质的有序数对个数. 不难发现,也就是说,我们只要预处理 ...

  9. 既约分数-phi

    Description 小明正在学习分数这一章,他想知道对于一个真分数b/a而言,当分母a在[2,N]之间时,存在多少个既约分数,例如当N=4时,有以下几个1/2,1/3,1/4,2/3,3/4这五个 ...

随机推荐

  1. RFC文档(http部分)

    Request For Comments(RFC),是一系列以编号排定的文件.文件收集了有关互联网相关信息,以及UNIX和互联网社区的软件文件.目前RFC文件是由Internet Society(IS ...

  2. 史上最难PHPer笔试题,40分就能月薪过万!附答案

    请批判性的学习,欢迎大牛指正错误 1.有关PHP字符串的说法,不对的是:A.如果一个脚本的编码是 ISO-8859-1,则其中的字符串也会被编码为 ISO-8859-1.B.PHP的字符串在内部是字节 ...

  3. 给锚点a标签添加滑动效果

    a标签是前端必用之一,但是a标签点击后马上跳到了href属性值处,有时候要达到滑动效果就要自己添加JavaScript 普通的a标签代码写好之后,在js脚本内加上 $("a").c ...

  4. [原]排错实战——VS清空最近打开的工程记录

    原脚本how-toprocess monitorsysinternalsvsvisual studiovs2017vs2019注册表 缘起 vs有一个功能 -- 在起始页会显示最近打开的工程列表,方便 ...

  5. dfs+剪枝 poj1011

    Sticks Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 113547   Accepted: 26078 问题描述 Ge ...

  6. 第二季第八天 HTML5新特性

    在函数内部window.a =  a  在全局中就可以拿到这个变量 变量命名.作为函数的参数的时候要详细.调用的时候可以简单点 做全局变量的两个方案 1.绑在标签上data 2.闭包 视频一般都是二进 ...

  7. 伯特兰·亚瑟·威廉·罗素[註 1],第三代羅素伯爵(英语:Bertrand Arthur William Russell, 3rd Earl Russell,1872年5月18日-1970年2月2日),OM,FRS,英国哲学家、数学家和逻辑学家,致力于哲学的大众化、普及化。[2] 在數學哲學上採取弗雷格的邏輯主義立場,認為數學可以化約到邏輯,哲學可以像邏輯一樣形式系統化,主張逻辑原子論。[3]

    一年假. 1920年7月,罗素申請了一年假; 這被批准了.他花了一年時間在中國和日本講學.对中国学术界有相当影响. 罗素说:  对爱情的渴望,对知识的追求,对人类苦难不可遏制的同情,是支配我一生的单纯 ...

  8. 如何优雅的设计APP页面?

    页面框架设计只是整个产品设计中的一环,不要把眼界局限在这一环,也不要只站需求.只站在交互.只站在视觉上思考问题,从多个角度看问题,你才会学会成长. 产品设计是一个系统工程,单独拧出来其中一个流程来讲, ...

  9. 十大经典排序算法(Javascript实现)

    前言 总括: 本文结合动图详细讲述了十大经典排序算法用Javascript实现的过程. 原文博客地址:十大经典排序算法 公众号:「菜鸟学前端」,回复「666」,获取一揽子前端技术书籍 人生有情泪沾衣, ...

  10. psi 函数计算

    scipy.special.psi odps中不支持 scipy.special.psi,需要改写 基于 chebyshev_polynomial https://people.sc.fsu.edu/ ...