定积分
Sn=1/n+2/n+3/n+…+n/n
当n趋向无穷大时,Sn=logN+常数
幂的指数为分数:把指数化成分数形式,
如2的2分之1次方,实际上就是先是2的一次方,再开方.
如果指数是三分之二
那么就是2的二次方再开三次方.
X=nM+y
X≡Y(mod:M)
法则:
若X≡X’(mod:M),Y≡Y’(mod:M),则X+Y(mod:M)=x’+y’(mod:M)
若X≡X’(mod:M),Y≡Y’(mod:M),则XY(mod:M)=x’*y’(mod:M)
乘法的计算复杂度:
1.有一个中间数组,存储着位移之后的结果,并且对结果进行相加,复杂度为O(N2);
两个数相乘法,不会超过2n位,推算如下:logN2=2logN<=2N
模运算:
模运算在计算机中是很重要的,因为计算机表达的数据是有上限的,如果一个数据类型最大表示为n位,那么取值范围为-2(n-1)<=x<=2(n-1)-1;
对数运算:
lnN 以e为低,N值的对数
logN 以2为底
lg 以10为底
Euclid规则
因数:任何数都是0的因数。
如果X和Y是正整数,X>=y;
证明:a mod b < a/2
当吧b=<a/2时 ,a mod b< b-1<a/2
当b>a/2时,a mod b=a-b<a-a/2=a/2
引理:如果d整除a,b,并且存在整数x和y使得,ax+by=d,那么d=gcb(a,b)
证明:由于d 整除a,b,那么d<=gcb(a,b)。由于d 整除a,b,并且x和y是整数,那么d能整除d。所以d>=gcb(a,b),结合步骤1的结论d<gcb(a,b)得出d=gcb(a,b);
public static TwoTuples coefficient(int a,int b)
{
if(b==0)
{
System.out.println(“a=”+a+";b="+b+" "+new TwoTuples(1,0,a));
return new TwoTuples(1,0,a);
}
TwoTuples tuples = coefficient(b,a%b);
System.out.println("a="+a+";b="+b+" "+ new TwoTuples(tuples.y,tuples.x-a/b*tuples.y,tuples.d));
return new TwoTuples(tuples.y,tuples.x-a/b*tuples.y,tuples.d);
}
static class TwoTuples
{
private int x;
private int y;
private int d;
public TwoTuples(int x, int y, int d) {
super();
this.x = x;
this.y = y;
this.d = d;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public int getD() {
return d;
}
public void setD(int d) {
this.d = d;
}
@Override
public String toString() {
return "TwoTuples [x=" + x + ", y=" + y + ", d=" + d + "]";
}
}
但是为什么这么做能够算出来,还是不太明白。
http://blog.csdn.net/zhjchengfeng5/article/details/7786595
NumberUtil.numberFormat(row.get(kqi)))