数学问题
yerkeys
小小程序猿
展开
-
欧几里得算法及扩展
辗转相除法求整数a,b的最大公约数gcd(a,b):定理:gcd(a,b)=gcd(b,a%b)证明:设a除以b得到的商和余数分别为k和r,则a=kb+r,r=a%b,设d为a,b公约数,则d一定整除r=a-kb,所以d是(b,a%b)的公约数。(a,b)和(b,a %b)公约数相同,最大公约数也一定相等。根据该定理不断操作下去最终得到gcd(a,b)=gcd(c,0)=c。复杂度...原创 2018-03-31 12:36:47 · 234 阅读 · 1 评论 -
快速幂运算
1.乘方取模问题:给定正整数x,n,m,计算x^n(mod m)。最简单代码,复杂度为O(n):ll res=1;for(int i=0;i<n;i++){ res=res*x%m;}2、快速幂,将n表示为2的幂次的和:,可以将x^n转化为:,依次由n的二进制位求x^2ki即可,复杂度降为O(logn)。例如,x^23=x^16*x^4*x^2*x(23二进制...原创 2018-03-17 18:42:57 · 219 阅读 · 0 评论 -
素数算法
1、素数判定给定整数n,判断n是不是素数。0<n<=10^9n除了本身,所有的约数都不大根号n,算法复杂度为O(√n) //素数判定 bool is_prime(int n){ for(int i=2;i*i<=n;i++) if(n%i==0) return false; return n!=1;}//枚举n所有的约数 vector<i...原创 2019-02-21 21:18:53 · 346 阅读 · 0 评论 -
蓝桥杯 垒骰子 矩阵快速幂
赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥!我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6。假设有 m 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。 atm想计算一下有多少种不同的可能的垒骰子方式。两种垒骰子方式相同,当...原创 2018-03-17 20:27:43 · 300 阅读 · 0 评论 -
POJ1001 Exponentiation 高精度
求高精度幂Description对数值很大、精度很高的数进行高精度计算是一类十分常见的问题。比如,对国债进行计算就是属于这类问题。 现在要你解决的问题是:对一个实数R( 0.0 < R < 99.999 ),要求写程序精确计算 R 的 n 次方(Rn),其中n 是整数并且 0 < n <= 25。InputT输入包括多组 R 和 n。 R 的值占第 1 到...原创 2019-01-30 22:33:39 · 186 阅读 · 0 评论 -
POJ3735 Training little cats 矩阵快速幂
DescriptionFacer's pet cat just gave birth to a brood of little cats. Having considered the health of those lovely cats, Facer decides to make the cats to do some exercises. Facer has well designed ...原创 2018-03-17 19:02:11 · 187 阅读 · 0 评论