编程语言
首页 > 编程语言> > 数学算法笔记(c++)

数学算法笔记(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