fermat

素数判定随机算法

断了今生、忘了曾经 提交于 2020-11-25 02:03:28
什么是素数? 素书就是那些因素除了1就是它们自身的数们. 欧几里德早在2000多年前,就证明了素数有无穷多个. 数学领域最古老的未解之迷是和素数, 加法相关. 其中一个就是孪生素数猜想-----存在无限多组差为2的素数对. 另外一个就是哥德巴赫猜想-----所有大于2的偶数都可以表示为两个素数之和. 切比雪夫证明过在(n, 2n)中有一个素数, 那么当n取为素数p时, 则有(p, 2p)中有一个素数q, 即0< q-p <p.那么当p任意增加时, q-p可能是任意大. 陈景润做出的结果是在(n, n+ n^0.6)之间存在着素数. 同理0< q-p <p^0.6 现在有个猜想:(n^2, (n+1)^2)之间存在素数. 上个月, 华人张益堂解决了据说是孪生素数猜想里程碑式的问题就是, 数学家们还是不能排除素数的间隔会一直增长最终超过一个特定上限的可能. 之前陈景润做出的结果是在张解决了这个问题,他证明了 对于某一个小于7千万的数字N,存在无穷多的素数对,他们之间的差小于N。当某人把7千万强化到3时, 孪生素数猜想是否正确就可以证明了. 素数判定: 给定一个正整数n, 判断n是否为素数 确定性 算法 算法思想:用2, ..., sqrt(n)来整除n, 若存在一个数能整除n, 则判定n为合数; 否则, n为素数. 时间复杂度:指数时间复杂度 算法实现: import java.io.

高等教育出版 现代数学基础部分

雨燕双飞 提交于 2020-10-16 12:47:22
实变函数论与泛函分析 : 上册·第二版修订本 夏道行、吴卓人、严绍宗、舒五昌 / 高等教育出版社 / 2010-1 / 34.00元 《实变函数论与泛函分析:上册•第2版修订本》内容简介:本版保持了初版的思想体系和基本结构,从局部来看作了一定程度的修改。在编写初版时,我们对《实变函数论与泛… 纸质版 28.80 元起 数论I : Fermat的梦想和类域论 [日]加藤和也、[日]黑川信重、[日]斋藤毅 / 胥鸣伟、印林生 / 高等教育出版社 / 2009-6-1 / 39.00元 《数论1:Fermat的梦想和类域论》起点低,但内容丰富,包括了现代数论的基本知识,如:椭圆曲线、p进数、代数数域、局部-整体方法等。该书的主要目标是证明数… 纸质版 31.70 元起 线性代数与矩阵论 : 第二版 许以超 / 高等教育出版社 / 2008年6月 / 59.00元 《线性代数与矩阵论》是将矩阵论和线性空间理论溶合在一起编写的。先以中学时熟悉的多项式为基础,将多项式理论交代清楚。接下去讲多元多项式。然后是矩阵论和线性空间… 纸质版 59.00 元起 几何与拓扑的概念导引 古志鸣 / 高等教育出版社 / 2011-2 / 49.00元 《几何与拓扑的概念导引》致力于对几何与拓扑的基本概念的解释及基本理论的综述,内容涉及古典几何、微分流形与李群、微分几何、拓扑学、代数曲线。《几何与拓扑的概念…

数论基础

不羁岁月 提交于 2020-08-17 07:49:48
开个坑先把基础放这儿,过两天来更新一些奇妙的知识 1 同余 若 \(a,b\) 为两个整数,且它们的差 \(a-b\) 能被某个自然数 \(m\) 所整除,则称 \(a\) 就模 \(m\) 来说同余于 \(b\) ,或者说 \(a\) 和 \(b\) 关于模 \(m\) 同余,记为: \(a \equiv b\pmod m\) 。它意味着: \(a-b=m\times k\) ( \(k\) 为某一个整数)。 例如 \(32\equiv 2\pmod 5\) ,此时 \(k\) 为 \(6\) 。 对于整数 \(a,b,c\) 和自然数 \(m,n\) ,对模 \(m\) 同余具有以下一些性质: 自反性: \(a\equiv a\pmod m\) 对称性:若 \(a\equiv b\pmod m\) ,则 \(b\equiv a\pmod m)\) 传递性:若 \(a\equiv b\pmod m,b\equiv c\pmod m\) ,则 \(a\equiv c\pmod m\) 同加性:若 \(a\equiv b\pmod m\) ,则 \(a+c \equiv b+c\pmod m\) 同乘性:若 \(a\equiv b\pmod m\) ,则 \(a*c\equiv b*c\pmod m\) 若 \(a\equiv b\pmod m, c\equiv d\pmod m\)

Miller Rabin 算法简介

血红的双手。 提交于 2020-08-10 11:51:02
0.1 一些闲话 最近一次更新是在2019年11月12日。之前的文章有很多问题:当我把我的代码交到LOJ上,发现只有60多分。我调了一个晚上,尝试用 {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 61, 24251, 2147483647, 998244353} 这么一大串数作为基底,然后左改右改,总算过去了。特别感谢 @骗分过样例 的提醒,现在张贴的代码应该是值得信赖的了。 之前我的同学好像就指出过我的文章的很多问题。比如说我之前写到,Miller Rabin在面对合数 \(46856248255981\) 时,如果用 {2,3,7,61,24251} 做基底,是会判断错误的。但实际上,他说他对着我的代码写了一遍,发现这个数是可以判掉的。 OI中的数学需要细心。相比其他算法方面,数学真的不好调试——一个公式算错了,一个下标写反了,程序就错了。而且复杂的数学代码很难用gdb查错,只能反复自己的公式是否写对,并且在转换成代码的时候是否有差错。编程需要细致和求实精神。当你在写代码,亦或是在写题解时,多问自己一个:有没有问题?是不是哪里写错了?这里为什么要这么写?可不可以造数据Hack?尤其是在写博客的时刻,每一个OIer都需要做到足够细致——因为这些文章不是写出来好看,让同学膜拜的,而是真的要帮到网络另一端,需要帮助的人。 这是我尤为欠缺的

Miller Rabin 算法简介

▼魔方 西西 提交于 2020-08-09 11:02:51
0.1 一些闲话 最近一次更新是在2019年11月12日。之前的文章有很多问题:当我把我的代码交到LOJ上,发现只有60多分。我调了一个晚上,尝试用 {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 61, 24251, 2147483647, 998244353} 这么一大串数作为基底,然后左改右改,总算过去了。特别感谢 @骗分过样例 的提醒,现在张贴的代码应该是值得信赖的了。 之前我的同学好像就指出过我的文章的很多问题。比如说我之前写到,Miller Rabin在面对合数 \(46856248255981\) 时,如果用 {2,3,7,61,24251} 做基底,是会判断错误的。但实际上,他说他对着我的代码写了一遍,发现这个数是可以判掉的。 OI中的数学需要细心。相比其他算法方面,数学真的不好调试——一个公式算错了,一个下标写反了,程序就错了。而且复杂的数学代码很难用gdb查错,只能反复自己的公式是否写对,并且在转换成代码的时候是否有差错。编程需要细致和求实精神。当你在写代码,亦或是在写题解时,多问自己一个:有没有问题?是不是哪里写错了?这里为什么要这么写?可不可以造数据Hack?尤其是在写博客的时刻,每一个OIer都需要做到足够细致——因为这些文章不是写出来好看,让同学膜拜的,而是真的要帮到网络另一端,需要帮助的人。 这是我尤为欠缺的

数论学习笔记

橙三吉。 提交于 2020-05-05 16:51:24
博主是个数学菜鸡,它考试几乎没及格过,但是他牛逼的同学们要他写笔记,so,他只能硬着头皮屑了,咕咕咕,可能有很多错误还望海涵! 有关素数的小结 质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。来自360百科 素数好玩的性质: 存在任意长的一段连续数,其中的所有数都是合数(相邻素数之间的间隔任意大) 证明:当 \(0<a<=n\) 时, \(n!+a\) 能被a整除。长度为n-1的数列 \(n!+2, n!+3, n!+4, …, n!+n\) 中,所有的数都是合数。这个结论对所有大于1的整数n都成立,而n可以取到任意大。 所有大于 \(2\) 的素数都可以唯一地表示成两个平方数之差。 证明:大于 \(2\) 的素数都是奇数。假设这个 数是 \(2n+1\) 。由于 \((n+1)^2=n^2+2n+1\) , \((n+1)^2\) 和 \(n^2\) 就是我们要找的两个平方数。下面证明这个方案是唯一的。如果素数p能表示成 \(a^2-b^2\) ,则 \(p=a^2-b^2=(a+b)(a-b)\) 。由于p是素数,那么只可能 \(a+b=p\) 且 \(a-b=1\) ,这给出了a和b的唯一解。 当n为大于2的整数时, \(2^n+1\) 和 \(2

数论学习笔记

安稳与你 提交于 2020-05-05 16:48:22
博主是个数学菜鸡,它考试几乎没及格过,但是他牛逼的同学们要他写笔记,so,他只能硬着头皮屑了,咕咕咕,可能有很多错误还望海涵! 有关素数的小结 质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。来自360百科 素数好玩的性质: 存在任意长的一段连续数,其中的所有数都是合数(相邻素数之间的间隔任意大) 证明:当 \(0<a<=n\) 时, \(n!+a\) 能被a整除。长度为n-1的数列 \(n!+2, n!+3, n!+4, …, n!+n\) 中,所有的数都是合数。这个结论对所有大于1的整数n都成立,而n可以取到任意大。 所有大于 \(2\) 的素数都可以唯一地表示成两个平方数之差。 证明:大于 \(2\) 的素数都是奇数。假设这个 数是 \(2n+1\) 。由于 \((n+1)^2=n^2+2n+1\) , \((n+1)^2\) 和 \(n^2\) 就是我们要找的两个平方数。下面证明这个方案是唯一的。如果素数p能表示成 \(a^2-b^2\) ,则 \(p=a^2-b^2=(a+b)(a-b)\) 。由于p是素数,那么只可能 \(a+b=p\) 且 \(a-b=1\) ,这给出了a和b的唯一解。 当n为大于2的整数时, \(2^n+1\) 和 \(2

学习:费马小定理 & 欧拉定理

…衆ロ難τιáo~ 提交于 2020-05-01 05:15:35
费马小定理 描述 若$p$为素数 ,$a\in Z$,则有$a^p\equiv a\pmod p$。 如果$p\nmid a$ ,则有$a^{p-1}\equiv 1\pmod p$。 证明 费马小定理的证法有很多,此处介绍3种 证法一 摘自:《初等数论》 冯志刚 著,有改动 此处用归纳法证明。 当$a=1$时,原命题显然成立。 设$a=n$时命题成立,即$n^p\equiv n\pmod p$,故$n^p-n\equiv 0\pmod p$。 考虑二项式系数$C^k_p=\frac{p!}{k!(p-k)!}$,若$k$不为$p$或$0$,由于分子有质数$p$,但分母不含$p$,故分子的$p$能保留,不被约分而除去,即$C^k_p$恒为$p$的倍数。 故有 $$(n+1)^p-(n+1)=n^p+C^1_pn^{p-1}+\cdots+C^{p-1}_pn-n\equiv n^p-n\equiv 0\pmod p$$ 所以对于任意$a\in N_+$,有$p\mid (a^p-a)$,故有$a^p\equiv a\pmod p$。 证法二 摘自: Wikipedia ,有改动 与证法一类似,先证明当$p$是质数时$C^k_p$恒为$p$的倍数。 然后就可以得到 $$(b+1)^p\equiv b^p+1\equiv (b-1)^p+1+1 \equiv (b-1)^{p}+1+1