数学算法笔记(c++)
作者:互联网
快速幂:
即求\(a^b\)除以\(m\)的余数
使用乘法定义:
b个a相加
即 \(a*b=a*\frac{b}{2}*2\)
Code:
long long mul(long long a,long long b,long long m){
if(b==0) return 0;
if(b%2==1) return (2*mul(a,b/2,m)+a)%m;
else return 2*mul(a,b/2,m)%m;
}
组合数学
1.减法原理:
即多种方案,存在一个…… -> 多种方案,不存在
洛谷P1397:
将总方案数减去不可能发生越狱的方案数。
使用快速幂:\(m^n-(m-1)^{n-1}*m\)
2.乘法原理
3.排列组合
\(C_m^n=\frac{n!}{m!(n-m)!}\)
标签:方案,return,frac,c++,long,算法,笔记,mul,乘法 来源: https://www.cnblogs.com/Pagani/p/16496631.html