正题
来自whzzt的定义,对于我来说,还是太难了。
简单的素数判定方法
首先是两个简单的素数判定方法:。
Lucas-prp判定方法在网上很难找到证明,我们在这里只说一下Miller-Rabin素数判定方法。
它是根据一个东西来判定的:对于一个质数p,必定有。
而根据费马小定理,我们知道,所以我们找一个任意正整数a,然后求它的p-1次,再不断开方(这个开方相当于是每一次求
次,
次......
然后我们多试几个a,就能大概率地保证p为质数了。
简单的整数分解方法
我们对于一个大数n,想要对他进行质因数分解是很困难的。
复杂度就是然后再加上素数判定的时间。
当n为long long,就很困难了。
在Pollard-rho中,我们考虑这样一条函数,我们让x初始值为1,然后不断调用这一个函数,就是算出
...这些东西的值。那么我们把它对n取膜之后,必定形成一个环或者一个
。所以我们设x,y,令x每一次跳一步,y每一次跳两步。
然后每一次我们把与n求一个gcd,若不为1,那么返回这个因子d,再不断递归
。
复杂度不会证,而且那条式子不能改,一改复杂度就不对。。。。就是很快
简单的离散对数求解
首先是BSGS,前面有博客,可以看一下。
接着就是Pollard-rho on logorithm,没学会留个坑吧,网上也没有中文版的博客,维基上面的我也看不懂啊。
其他的
杂项就很多了,比如说:Lucas定理了,Hall定理,卡特兰数,斯特林数,中国剩余定理。。。在这里就不再扩展,想学习的自行查阅菜鸡弱弱的博客。
1094

被折叠的 条评论
为什么被折叠?



