
数论
Xiyou_sky
Hello world!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
扩展欧几里得_extended Euclidean algorithm
扩展欧几里得就是已知a, b求解一组x,y,使它们满足等式: ax+by = gcd(a, b) =c,它的解是一定存在的,只要c是gcd的倍数。在说扩展欧几里得算法之前需要知道朴素欧几里得算法,即gcd(a,b) = gcd(b,a%b),(最大公约数Greatest Common Divisor),证明也很简单,我采用的是反证法,这里不再赘述。突然发现一篇博客写的非常非常好,这里直接...转载 2019-05-11 17:45:27 · 705 阅读 · 0 评论 -
欧拉筛法
#欧拉筛法判断一个数是不是素数,最朴素的就是o(n^2)的暴力法,改进一下可以优化筛选到sqrt(n),但是复杂度还是太高,所以有了埃氏筛法,但是有的数还是会被筛选两次,比如说像6 = 2*3就会被2和3重复筛去,欧拉筛法就更加优化,不会重复筛,所以效率也就更高了。模板/*求小于等于n的素数的个数*/#include<stdio.h>#include<string....原创 2019-05-07 20:37:05 · 176 阅读 · 0 评论 -
矩阵快速幂
思想与整数快速幂类似,这里有一篇博客写的很详细,这里就不再重复整理了。模板#include <stdio.h>#include <cstring.>typedef struct Matrix{ int m[3][3];}Matrix;Matrix multiple(Matrix a,Matrix b,int n){ Matrix res; ...原创 2019-06-01 18:20:54 · 180 阅读 · 0 评论