
数论
程序员bigsai
坚持分享学习,写了一本原创数据结构与算法pdf分享给大家。
展开
-
快速幂模板(java)
知道快速幂首先要知道(a * b)%c=(a%c)*(b%c)还要知道 a^b= a^(2 *b/2)=a^2的b/2次方当换成int类型需要考虑奇偶型做不同处理那么幂分为奇偶数考虑b%2=0: ab= a2*(b/2)=(a2)b/2b%2=1:ab=a* a2*(b/2)=a*(a2)b/2(因为b/2之后为基数数值变小了(int)类型。5/2=2,2*(5/2)=4一样)。...原创 2018-11-18 09:46:56 · 3600 阅读 · 0 评论 -
欧拉函数/欧拉函数打表 lightoj1370(java/c++ )
欧拉函数/素数判定 题目链接 题目 Bamboo Pole-vault是Xzhiland的一项大受欢迎的运动。 Phi-shoe大师是他成功的非常受欢迎的教练。他需要为他的学生提供一些竹子,所以他让他的助手Bi-Shoe去市场购买。市场上有很多可能的整数长度的Bamboos(是的!)。根据Xzhila的传统, 竹子的分数=Φ(竹子的长度) (Xzhilans非常喜欢数论)。对于您的信息...原创 2019-05-23 21:55:21 · 3140 阅读 · 0 评论 -
poj1061-青蛙的约会(拓展欧几里得java)
题目: 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。为了帮助这两只...原创 2019-05-23 20:12:44 · 3177 阅读 · 0 评论 -
唯一分解定理(算术基本定理)详解——hdu5248和lightoj1341
算数分解定理(唯一分解定理):定义:任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积 N=P1a1 P2a2P3a3…Pnan,这里P1<P2<P3…<Pn均为质数,其中指数ai是正整数。这样的分解称为 N 的标准分解式.应用:对于一个正整数n,如果n=q1a1 * q2 a2 * …* qnan,那么他的正因数个数为(1 a1) * (1 ...原创 2019-05-23 14:20:45 · 5283 阅读 · 1 评论 -
素数筛模板
在判定素数的问题中,随着不断学习,里面的拓展性也在不断地增加。 问题:判定一个数是否为素数: 想都不想的方法: static boolean isprime(int value){ for(int i=2;i( 3)数组尾],6,9,12 * * 不是素数 4: [i=4]不是素数,跳过 5: . . . . . . . . . . . . 这个到除了前面几次的计算量多一点,到后面...原创 2019-05-22 21:52:58 · 3196 阅读 · 0 评论 -
两种欧拉函数模板
求欧拉函数代码的方式:直接求和打表 欧拉函数的作用:一个数n,求小于n的互质的个数。特例:1——oula(1)=1; 欧拉函数的公式: 其中i为x所有质因数。注意:每种质因数只一个 为什么会这样?首先,互质的两个数一定不能有公共因数。比如9和7互质,9和12不互质,因为有共同因数3. 那么我难道需要一个个循环比较吗? 答案先然不可能,因为如果数值过大这是个很大的复杂度。那么我该如...原创 2018-12-07 22:57:02 · 2748 阅读 · 0 评论 -
拓展欧几里得模板/求逆元模板(java)
拓展欧几里得模板 参考:哈尔滨理工大学ACM培训资料汇编/ACM-ICPC培训资料汇编* 基本原理 :设 a 和 b 不全为 0,则存在整数 x,y 使得 xa yb=gcd(a,b)=c 对于辗转相除法的最后一项 此时 b=0,则 gcd(a,b)=1a 0b,(这个a,b是经过gcd的最后一项a,b) 因为gcd(a,b)=gcd(b,a%b) 则有x *a y *b=x1 *b ...原创 2018-11-18 10:55:27 · 4314 阅读 · 0 评论 -
矩阵快速幂&求大斐波那契&poj3070(java)
题目链接 核心思想为: 从右往左。可以一直递推,然后到最后一项,然后快速幂求矩阵,矩阵最终的结果就是所求结果。 更新:java的矩阵通用乘法可以表示为,可以将下列代码替换道ac代码中: static int [][] multiplication(int a[][],int b[][]){// int x=a.length;//a[0].length=b.length 为满足条件...原创 2018-11-19 10:49:20 · 3444 阅读 · 0 评论 -
递归求最大素因数(java)
可能经常进群会问这个群号的最大素因数是多少,或者算法题中也会遇到。今天就写一下求最大质因数的模板。 首先分析,怎么求一个数的最大素因数。首先,我们以前求过最大因数,求最大因数的最暴力为2—n-1暴力查找,但是这样太超时了,后来发现在根号n前或者后某个区域查找就行了。因为找某个因数时候。n=a* b;a=根号n;所以只需查找到最小的因数就可以通过除法找到最大的因数。这只是查找因数的...原创 2018-10-16 22:36:45 · 3571 阅读 · 0 评论 -
杭电2669拓展欧几里得
杭电2669 给a,b求X*a Y*b = 1.如果没有则输出sorry。 可以通过拓展欧几里得指导X*a Y*b = gcd(a,b). 不言而喻要判断gcd(a,b)是否等于1.如果不等于1,那么就是sorry。如果等于一,那么还不能让x小于0,要对x,y进行加减操作满足x>0;拓展欧几里得是通过递归从下往上进行运算。 import java.io.BufferedReader...原创 2018-09-01 11:10:22 · 2690 阅读 · 0 评论