循环小数与费马小定理
17/05/29 22:30:51 | Snakes
背景
  题目出自之前亮灯问题、杨辉三角与Sierpinski三角形提及的生日题中的第三、四、五题。

题目
  第三题 证明:对于任意非\(2, 5\)倍数正整数\(n\)且满足\(n>1\),均存在正整数\(k, i\)满足\(kn=10^i-1\)。
  第四题 证明:在\(k\)进制下\((k>1)\),任何形如\(a/b\)(\(a, b\)均为正整数)的数均为有限小数或无限循环小数。
  第五题 证明:在上一问条件下,若\(b\)与\(k\)互质则\(a/b\)为无限循环小数,若\(a\)的质因子为\(k\)的质因子的子集则\(a/b\)为有限小数。

答案
  既然是证明题,那么就没有标准答案。以下提供一种可行的思路并且再探讨另一个问题:\(k\)进制下\(b/a\)若循环,那么它的循环节长度\(len\)是多少?

  接下来,我们将要分节讨论了。

无限循环小数
  在\(k\)进制下,若有数\(x\)满足其为\(0<x<1\)的纯循环小数(即其循环节从小数点后第\(1\)位开始|思考:若为混循环小数或大于\(1\)的纯循环小数,有什么办法将其转化求解呢?)且其循环节长度为\(len\),循环节中数字为\(y\),则我们可得\(x\cdot k^{len}-x=y\)。\(x\cdot k^{len}\)相当于将第一个循环节移动到小数点左侧,与\(x\)相减就得到循环节中的数字\(y\)。整理可得\(y/(k^{len}-1)=x\)。

  所以,我们可得结论:数\(x=a/b\)为无限循环小数的条件为存在整数\(len, i\)满足\(bi=k^{len}-1\)。这个式子中,\(k\)取\(10\)的情形即第三题的提问。

  思考题答案:若为大于\(1\)的纯循环小数,可表示成一个整数与一个\(0\)与\(1\)之间纯循环小数的和,因为整数一定能表示成任意整数作分母的分数形式,对小数部分讨论之后将整数部分加上去即可。对于混循环小数,可以乘以\(k\)的次幂,将小数点移动到循环节前,按照大于\(1\)的纯循环小数处理,最后乘以\(k\)的次幂的倒数即可。

费马小定理
  对于质数\(p\),与\(p\)互质的整数\(a\),有下式成立:

\[a^{p-1}\equiv 1 \pmod p\]

  这是接下来将要用到的定理。如何证明?

  引理\(1\):对于整数\(a, b, c\)与正整数\(p\),若\(c, p\)互质,\(ac\equiv bc \pmod p\),则有\(a\equiv b \pmod p\)。

  证明:
  移项得:

\[\begin{align}ac-bc&\equiv 0 \pmod p\\ (a-b)c&\equiv 0 \pmod p\end{align}\]

  因为\(c, p\)互质,所以有:

\[\begin{align}a-b&\equiv 0\pmod p\\ a&\equiv b\pmod p\end{align}\]

  引理\(2\):对于整数\(p\)满足\(p>1\),与\(p\)互质的整数\(b\)以及模\(p\)的完全剩余系\(a_1, a_2, .. ,a_m\),有\(ba_1, ba_2, .. ,ba_m\)构成模\(p\)的完全剩余系。

  证明:
  若其不构成模\(p\)的完全剩余系,则有\(ba_i\equiv ba_j \pmod p\)成立,由引理\(1\)得,有\(a_i \equiv a_j \pmod p\)成立,与条件不符,因此\(ba_i\equiv ba_j \pmod p\)不成立,则\(ba_1, ba_2, .. ,ba_m\)构成模\(p\)的完全剩余系。

  费马小定理:

  构造模\(p\)下的完全剩余系\({0, 1, 2, .. , p-1}\),由引理\(2\)得\({0, a , 2a, .. , (p-1)a}\)也为模\(p\)下的完全剩余系。可得\(1\times 2\times ..\times (p-1)\equiv a\times 2a\times ..\times (p-1)a \pmod p\)成立。则有\((p-1)!\equiv a^{p-1}(p-1)! \pmod p\)成立。因为\(p\)为质数,所以\((p-1)!\)与\(p\)互质,根据引理\(1\)得\(1\equiv a^{p-1}\pmod p\)成立。

两者之间的关系
  之前提及,数\(x=a/b\)为无限循环小数的条件为存在整数\(len, i\)满足\(bi=k^{len}-1\)。而费马小定理则告诉我们,对于质数\(p\),与\(p\)互质的整数\(a\),有\(a^{p-1}\equiv 1 \pmod p\)。当\(b\)为质数,\(a=k\)时显然有\(k^{b-1}-1\equiv 0 \pmod b\),也就是说,存在整数\(len, i\)满足条件。

  但是当\(b\)不为质数但与\(k\)互质时怎么办?不妨将\(b\)分解质因数,令\(b=p_1^{q_1}\times p_2^{q_2} \times .. \times p_n^{q_n}\)(此处翻车),根据欧拉定理(在\(b, p\)互质下有\(p^{\varphi(b)}\equiv 1\pmod b\)),则分别有\(k^{\varphi(p_i^{q_i})} \equiv 1 \pmod {p_i^{q_i}}\)成立,其中\(1\leq i \leq n\)。可知有\(k^{c(p_i-1)p_i^{q_i-1}} \equiv 1 \pmod {p_i^{q_i-1}}\)成立。别忘了欧拉函数是积性函数,所以有下式成立:

\[k^{\frac{[(p_1-1)p_1^{q_1-1}][(p_2-1)p_2^{q_2-1}]..[(p_n-1)p_n^{q_n-1}]}{gcd[(p_1-1)p_1^{q_1-1}, (p_2-1)p_2^{q_2-1}, .. , (p_n-1)p_n^{q_n-1}]}}\equiv 1 \pmod b\]

  即:

\[k^{\frac{\varphi(p_1^{q_1})\varphi(p_2^{q_2}).. \varphi(p_n^{q_n})}{gcd[ \varphi(p_1^{q_1}),\varphi(p_2^{q_2}), .. , \varphi(p_n^{q_n})]}}\equiv 1 \pmod b\]

  并且由于积性函数,我们有:

\[\varphi(b) \equiv 0 \pmod {\frac{\varphi(p_1^{q_1})\varphi(p_2^{q_2}).. \varphi(p_n^{q_n})}{gcd[ \varphi(p_1^{q_1}),\varphi(p_2^{q_2}), .. , \varphi(p_n^{q_n})]}}\]

  所以大多数情况下(\(b\)与\(k\)互质)时循环节长度最小值\(len\)能被\(\varphi(b)\)整除。

  而对于\(b\)与\(k\)不互质的情况,我们要分类讨论。若\(b\)的质因数为\(k\)的质因数的子集,那么\(a/b\)乘以\(k\)的次幂一定可以得到一个整数,则\(a/b\)为有限小数。若不为子集,则我们将\(a/b\)乘以\(k\)的次幂,消除交集部分质因数的影响,转为\(b\)与\(k\)互质的情况继续讨论。这其实与之前思考题的解决方法一致。通过分类讨论,我们可以解决第四题与第五题。

  所以,将\(k=10\)代入,我们可以证得第三题(对于任意非\(2, 5\)倍数正整数\(n\)且满足\(n>1\),均存在正整数\(k, i\)满足\(kn=10^i-1\)。)成立。

结论
  在\(k\)进制下,形如\(a/b\)(\(a, b\)均为整数)的分数(最简形式),若\(b\)与\(k\)互质,则\(a/b\)为纯循环小数。若\(b\)质因数与\(k\)质因数有交集且\(b\)质因数不为\(k\)质因数子集,则\(a/b\)为混循环小数。否则若\(b\)质因数为\(k\)质因数的子集,\(a/b\)为有限小数。

  当\(a/b\)为循环小数时,在大多数情况下其循环节长度\(len=\frac{\varphi(b)}{gcd[ \varphi(p_1^{q_1}),\varphi(p_2^{q_2}), .. , \varphi(p_n^{q_n})]}\)。不难发现有\(len\leq (b-1)\)且当\(b\)为质数时\(len\)取到\(b-1\)。

转载于:https://www.cnblogs.com/Roni-i/p/9158171.html

循环小数与费马小定理相关推荐

  1. 欧拉定理 费马小定理

    前言 学基础数论的时候看过证明,然而很快就忘了,最近在学习高深一点的数论,于是再复习一下欧拉定理和费马小定理. 欧拉定理 内容 若正整数 \(a,n\) 互质,则 \(a^{\varphi(n)}\e ...

  2. 「欧拉定理」学习笔记(费马小定理)

    欧拉定理:对于互质的两个正整数$a, n$,满足$a^{φ(n)} ≡ 1\  (mod\ n)$ 证明: 设集合$S$包含所有$n$以内与$n$互质的数,共有$φ(n)$个:$$S = \{ x_1 ...

  3. 【ACM】杭电OJ 4704 Sum (隔板原理+组合数求和公式+费马小定理+快速幂)

    http://acm.hdu.edu.cn/showproblem.php?pid=4704 1.隔板原理 1~N有N个元素,每个元素代表一个1.分成K个数,即在(N-1)个空挡里放置(K-1)块隔板 ...

  4. 子段乘积(逆元费马小定理)+线段树做法

    题解:一开始做这个题的时候想过尺取法,但是因为没有逆元的知识,不知道该如何不断删除左端元素.其实这题并不难想,设l,r为两端开始都置为1,当长度小于k的时候不断乘右端元素并取余,当长度等于k时删除左端 ...

  5. luogu P2613 【模板】有理数取余(费马小定理,乘法逆元)

    整理的算法模板合集: ACM模板 目录 题目传送门 题目传送门 相当于是一个高精的费马小定理求乘法逆元.虽然数据达到了101000110^{10001}1010001,但是我们可以使用快读然后一直模m ...

  6. 关于素数常用结论--威尔逊定理、欧拉定理、费马小定理、米勒罗宾算法

    再需要判定的数比较大时,用枚举法肯定不行的,但目前数学界也没有任何一种又快又准确的判定素数的方法,并且也证明了素数不存在任何一种通项表达式.但作为初等数论中最大的一部分内容,数学家们对素数性质进行了大 ...

  7. 【BZOJ1951】【SDOI2010】古代猪文 Lucas定理、中国剩余定理、exgcd、费马小定理

    Description "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" --选自猪王国民歌 很久 ...

  8. HDU4549 M斐波那契数列(矩阵快速幂+费马小定理)

    Problem Description M斐波那契数列F[n]是一种整数数列,它的定义如下: F[0] = a F[1] = b F[n] = F[n-1] * F[n-2] ( n > 1 ) ...

  9. 西电oj1066 费马小定理

    西电oj1066 费马小定理 问题 A: A^B % P 时间限制: 1 Sec  内存限制: 128 MB 提交: 28  解决: 8 [提交][状态][讨论版] 题目描述 输入 输出 样例输入 2 ...

最新文章

  1. 在Debian中建立Beaglebone black的应用开发环境之四:如何布置应用?
  2. sql server 2005 T-SQL BEGIN CONVERSATION TIMER (Transact-SQL)
  3. 清华北大等12校首批开设“未来技术学院”,它们都设置了哪些专业?
  4. java动态代理(JDK和cglib)详解
  5. MS Chart 学习心得
  6. python报错:TypeError: cant multiply sequence by non-int of type float(bug)(csdn标题没法用英文引号,以后注意别搜引号)
  7. 看视频时,类加载器没太理解,现在再整理下几个要点
  8. c# mysql代码中写事务_代码中添加事务控制 VS(数据库存储过程+事务) 保证数据的完整性与一致性...
  9. java程序单引号报错,javapoigetInpuStream报错br/是这样的, 爱问知识人
  10. android 获取相机拍照保存到sqlite_OPPO助力谷歌CameraX计划,造福第三方相机应用用户...
  11. 锋神教我数据库,吴大哥教我写文档——其一
  12. 软件项目管理 案例教程复习要点
  13. git命令行操作指南(git指令及使用场景详解及git stash、git branch、git分支关联等)
  14. MATLAB机器人工具箱的下载与安装
  15. UCI-HAR数据集的处理
  16. 一文读懂中国5G的真正实力
  17. cdr 表格自动填充文字_Excel表格设置生成自动填充序号、编号
  18. 【Python】cmd指令安装python第三方库的几种方法
  19. 各品牌网络监控摄像头RTSP地址查询
  20. java开发机房动力环境监控系统 --心得体验!

热门文章

  1. 【代码笔记】iOS-对UIView进行截图
  2. Android获取屏幕实际高度跟显示高度,判断Android设备是否拥有虚拟功能键
  3. #1406 data too long for column '' at row 1
  4. 关于feign开启hystrix导致用户鉴权失败
  5. springboot 禁用tomcat_Spring Boot 面试的十个问题
  6. orm和mysql_orm与mysql
  7. c++ 返回智能指针_C++核心指南(17) I.11 禁止使用指针(T*)或引用(T)来转移所有权...
  8. 虚拟机安装rsync服务器配置,虚拟机安装rsync服务器配置
  9. android webview 获取 title,【报Bug】app webview 安卓机 title显示问题
  10. c++创建二叉树_数据结构:查找(4)|| 平衡二叉树