基础

快速幂

int poww(int a, int b) {
    int ans = 1, base = a;
    while (b != 0) {
        if (b & 1 != 0)
            ans *= base;
            base *= base;
            b >>= 1;
    }
    return ans;
}

gcd

int gcd(in a,int b)
{
	return a%b==0?b:gcd(b,a%b);
}

exgcd

int exgcd(int a,int b,int &x,int &y)
{
		if (b==0){
			x=1,y=0;
			return a;
		}
		int d=exgcd(b,a%b,y,x);
		y-=a/b*x;
		return d;
}

srand( (time(NULL) ) ;

c语言中语句srand( (time(NULL) ) ; 表示设置一个随机种子,每次运行都能保证随机种子不同。
在C语言中,rand()函数可以用来产生随机数,但是这不是真正意义上的随机数,是一个伪随机数,它是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值。
因此,C提供了srand()函数,它的原型是 void srand( int a)。用来改变这个种子值。
srand( (time(NULL) )中time(NULL)函数是得到一个从1900年1月1日到现在的时间秒数,这样每一次运行程序的时间的不同就可以保证得到不同的随机数了。

register

用了register可以使频繁使用的变量在调用的时候更快,具体我也不知道,但是用了register之后就不能使用&,也就是不能取地址。

你可能感兴趣的:(数论)