数论
文章平均质量分 75
xffyjq
Never never never give up.
展开
-
素数判定——Miller Rabin 算法
最近复习备战NOIP,开始回顾NOIP基础知识(才发现这么多不会= =b)首先过关的是基础数论知识,从素数判定开始学起。谈到素数判定,首先想到的两种便是暴力判定与筛法,实现非常简单,在此不提。但在分解大质数时,由于数字过大,使得暴力判定会超时,筛法会超空间(可使用有技巧的限制空间筛法,但数字过大仍然过不了)这时,我们就要引入非完美大质数判定算法——Miller Rabin算法。下面一段引自sunsh原创 2016-09-27 21:17:18 · 733 阅读 · 0 评论 -
大整数分解——Pollard Rho算法
延续上一篇,这次来讲一讲大整数分解算法的应用。要解决的问题很简单,对一个整数进行分解质因数。首先还是效率非常低的暴力算法,相信大家都会,不多提。和上次一样,当数达到非常大的时候,分解将变得非常困难。于是这次又带来一个提升分解速度的“非完美”算法。之所以打引号,是因为这次不完美的不是结果,而是时间效率。Pollard Rho算法分解一个数n的过程大体上是这样子的:1、找到一个数p,使得p|np|n,将原创 2016-09-28 20:04:38 · 9139 阅读 · 0 评论 -
poj1811(大质数判定与大数分解的模板题)
题目大意:输入一个数(经过两篇博客详解,相信这道题目完成应该没有问题了。下面附上代码。#include#include#include#includeusing namespace std;typedef long long LL;LL ans;LL modmul(LL a,LL b,LL mod){ LL ret=0; for(;b;b>>=1,a=(a+a)%mod原创 2016-09-28 20:56:51 · 582 阅读 · 0 评论 -
poj1331(浅谈进制转换)
题意:给出三个数a、b、c,求a*b=c在哪个进制下成立。进制转换,显然是一个非常简单的问题。我们仅需要掌握n进制-10进制 和 10进制-n进制转换即可以由此完成任意进制数的转换了。今天主要讲的是进制转换的stl实现方法——strtol函数。以下引用自百度。longint strtol(constchar *nptr,char**endptr,int原创 2016-09-28 21:08:22 · 681 阅读 · 0 评论