算法笔记--基础数学知识
1.向下取整
数学符号:
⌊59/60⌋=0 向下取整 等于js中的Math.floor()
⌈59/60⌉=1 向上取整 等于js中的Math.ceil()
2. 等差数列
an = a1+(n-1)*d; // d是公差
sum = (a1+an)*n/2 = n*a1 + n(n-1)*d/2;
应用:
如果遇到嵌套循环
1 for(i=0;i<n;i++) { 2 for(j=0;j<i ; j++){ 3 // TODO 4 } 5 }
计算上面的代码的循环次数为: 1+2+......+n,可以计算该算法的复杂度
3.等比数列
an = a1*qn-1; // q是公比
S= a1(1-qn)/1-q
4. 对数运算(指数运算的逆运算)
Math.log(Math.E) = 1; // Math.log()是以e为底的对数
logxY = logc(Y)/logc(X); // 换底公式
logxY + logxZ = logx(Y*Z); // 对数求和
logxY - logxZ = logx(Y/Z); // 对数求差
logxYz=z*logxY