
数论
「已注销」
这个作者很懒,什么都没留下…
展开
-
埃拉托斯特尼算法——质数
寻找0到n中的质数个数,i从2到sqrt(n)依次取未被标记数j,每次从j*j到n将j(当前质数)的倍数进行标记,最后剩下全为质数#include<iostream>#include<math.h>using namespace std;int isprime(int m,int n){ int *prime=new int[n+1]; for(int i=2;i<=...原创 2018-04-23 08:16:25 · 542 阅读 · 0 评论 -
欧几里得算法
//辗转相除 #include<stdio.h> int main() { int x, y, z, m, n; printf("请输入两个数:"); scanf("%d%d", &x, &y); m = x, n = y; while (y != 0) { ...原创 2018-04-23 08:16:16 · 178 阅读 · 0 评论 -
扩展欧几里得算法
前面我们用欧几里得算法gcd(a,b)=gcd(b,a%b)求得a,b的最大公约数,而扩展欧几里得算法可求得ax+by=gcd(a,b)的解,进一步可得到ax+by=m的解 原理如下:设a>b当b=0时,很显然a*x=gcd(a,b)=a,所以x=1,而y为任意数,为了同一和方便我们令y=0;当a>b>0时,设有两组等式a*x1+b*y1=gcd(a,b),...原创 2018-05-05 10:26:57 · 188 阅读 · 0 评论 -
快速幂
求anan={(a2)n2a⋅(a2)n2n为偶数n为奇数LL quickpow(LL x,LL n){ LL ans=1; while(n>0) { if(n&1)//n%2==1 ans*=x; x*=x; n/=2; } return ans; } 如果要求取模的话,则在进行乘法运算的每一步取模即可...原创 2018-05-05 10:49:15 · 155 阅读 · 0 评论 -
斯特林公式
普通计算时:N!=1*2*3*4*5*............*N;如果要计算N!后得到的数字,则我们可以知道其等于lgN!+1lgN!=lg1+lg2+lg3+lg4+lg5+....................+lgN;但是当N很大的时候,我们可以通过数学公式进行优化:(即Stirling公式)N!=sqrt(2*pi*N)*(N/e)^N;(pi=3.1415926=acos(-1.0)...转载 2018-05-05 11:13:14 · 342 阅读 · 0 评论 -
判断一个组合数是奇数还是偶数
C(n,k)为奇数时n&k==k //n和k进行&位运算后还等于k转载 2018-05-05 11:23:45 · 1773 阅读 · 0 评论