
数学算法证明
数学算法证明
yilyil
勿在浮沙筑高台
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
米勒-拉宾质数判断证明
学习自 wiki米勒-拉宾素性检验同余欧几里得引理同余式a≡b (mod m)两个整数a,b,若它们除以正整数 m所得的余数相等,则称a, b对于模m同余欧几里得引理如果a|bc ,gcd(a,b)=1 那么 a|c如果一个正整数整除另外两个正整数的乘积,第一个整数与第二个整数互质,那么第一个整数整除第三个整数。命题30的表述如果 p|bc 那么 p|b 或者 p|c如果一...原创 2019-10-20 10:23:35 · 769 阅读 · 6 评论 -
素数的随机生成:Lagrange素数定理
Lagrange ,学过高数的人应该都知道约瑟夫·拉格朗日伯爵(法语:Joseph Lagrange,1736年1月25日-1813年4月10日),法国籍意大利裔数学家和天文学家。拉格朗日曾为普鲁士的腓特烈大帝在柏林工作了20年,被腓特烈大帝称做“欧洲最伟大的数学家”,后受法国国王路易十六的邀请定居巴黎直至去世。拉格朗日一生才华横溢,在数学、物理和天文等领域做出了很多重大的贡献。他的成就包括著...原创 2019-10-21 11:06:44 · 1227 阅读 · 0 评论 -
那些年关于素数的算法:素数判断方法分类 及 试除法, 费马素数,米勒-拉宾代码实现
以下内容整理自wiki素数(质数)大于1的自然数中,除1与其本身外,无法被其他自然数整数的数注:其余的就是合数,1两者都不是先知: 两个整数a,b,若它们除以正整数 m所得的余数相等,则称a, b对于模m同余,记为:a≡b(mod m)一丶素数测试:检验是否为素数确定性测试::一般比较慢,总能测试出一个数是否为素数还是合数,有一些试除法:逐一测试2~√n,确保无一能被整除...原创 2019-10-15 11:29:47 · 1095 阅读 · 0 评论 -
密码学:伪代码
用来好复习快速求模幂:二进制法ll getmodpow(ll base, ll *binary, int m, int num) //计算模幂{ ll result = 1; for (int i = 0; i < num; i++) { if (binary[i]) result = (result * base) % m; base = (base*base...原创 2019-10-21 15:39:32 · 529 阅读 · 0 评论 -
Euclid最大公因数算法及其扩展求逆元
对a,b求最大公因数我们显然可以对a,b进行因式分解,然后将公共因数相乘1035=32 · 5 · 23759=3 · 11 · 23gcd(1035,759)=3 · 23=69但是我们还没有有效进行因式分解的算法,这时候我们可以使用Euclid最大公因数算法注GCD可以指:最大公因数(greatest common divisor,简写为gcd)a ÷ b ① a除以...原创 2019-10-21 10:32:50 · 3395 阅读 · 1 评论 -
快速求模幂:二进制法
参考wiki Modular exponentiationbm mod n 这个当很大时很难计算,所以可以用到二进制法来求模幂直接举例可以看出前一个基数的幂是后一个基数幂的平方,所以我们假设第一个基数为b1,第二个为b2,依次类推现在我们合并一下,即每个先乘以低位mod的结构,再mod我们再优化一下,指数等于 0是没有必要乘的,但是我们任然需要计算基数,方便下一个直接平方其实上...原创 2019-10-19 10:46:16 · 1783 阅读 · 0 评论