首页 > 其他分享 >卢卡斯(lucas)定理

卢卡斯(lucas)定理

时间:2025-01-22 21:54:00浏览次数:1  
标签:begin end lucas int res 定理 卢卡斯 binom aligned

对于质数 \(p\),有

\[{\Large \begin{aligned} & \binom{n}{m} \equiv \binom{\left \lfloor n/p \right \rfloor }{\left \lfloor m/p \right \rfloor } \binom{n\mod{p}}{m\mod p} \pmod{p} \end{aligned} } \]

引理1

\[{\Large \begin{aligned} & \binom{p}{n}\mod{p}=[n=0\vee n=p] \end{aligned} } \]

引理2

\[{\Large \begin{aligned} & (a+b)^p \equiv a^p+b^p \pmod{p} \end{aligned} } \]

P3807 【模板】卢卡斯定理/Lucas 定理

直接应用上面的。\(n、m\)较小时就可以直接暴力求。由于每个 \(p\) 不同,因此不能预处理阶乘。
又因为 \(p\) 可能比 \(n、m\) 小,因此不能递推求逆元。

点击查看代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
int p,cnt;
int ksm(int x,int k)
{
	int res=1;
	while(k)
	{
		if(k&1) res=res*x%p;
		k>>=1;x=x*x%p;
	}
	return res;
}
int C(int n,int m)
{
	int jie1=1,jie2=1;
	for(int i=n;i>=n-m+1;i--) jie1=jie1*i%p;
	for(int i=1;i<=m;i++) jie2=jie2*i%p;
	jie2=ksm(jie2,p-2);return jie1*jie2%p;
}
int lucas(int n,int m)
{
	if(m==0) return 1;
	return (C(n%p,m%p)*lucas(n/p,m/p))%p;
}
void solve()
{
	int n,m;cin>>n>>m>>p;n=n+m;cnt=0;
	cout<<lucas(n,m)<<'\n';
}
signed main()
{
	ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
	int T;cin>>T;while(T--) solve();
}

标签:begin,end,lucas,int,res,定理,卢卡斯,binom,aligned
From: https://www.cnblogs.com/allforgod/p/18686841

相关文章

  • 矩阵树定理 记录
    矩阵树定理这玩意背一次忘一次,还是写一发吧。前置知识:行列式求值给定一个矩阵,定义一个\(n\)阶矩阵\(A\)的行列式为\(\detA=\sum_{p}(-1)^{\pi(p)}\proda_{i,p_i}\),其中\(p\)为一个\([1,n]\)的排列,\(\pi(p)\)为排列\(p\)的逆序对数。行列式中行和列是等价的,以下......
  • 费马定理以及逆元预处理
    #include<bits/stdc++.h>usingnamespacestd;staticconstintMOD=1000000007;//预先全局存放阶乘与逆阶乘的数组staticconstintMAXN=100000;//根据题意,n最多10^5longlongfact[MAXN+1],invFact[MAXN+1];//快速幂,用于求x^y%MODlonglongfastPow(lo......
  • 中值定理
    中值定理微分中值定理微分中值定理是一系列定理的统称,它们在函数的导数与函数值之间架起了一座桥梁,揭示了函数在某区间内的一些深刻性质费马引理若函数\(f(x)\)在可导点\(x_0\)处取极值,则\(f'(x_0)=0\)。理解:就好比一座山峰,当你站在山顶(极值点)时,此刻的切线是水平的(导数为0......
  • 再学欧拉之欧拉定理
    没错,本文的一切还是为了它——\(\varphi\)。欧拉定理内容若\(a,n\)互质,则有\(a^{\varphi(n)}\equiv1\pmodn\)。证明设小于\(n\)且与\(n\)互质的自然数集合(即\(n\)的剩余系)为:\(X:x_1,x_2,x_3,\dots,x_{\varphi(n)},P:p_1=a\timesx_1,p_2=a\timesx_2,\dots,p_......
  • 群论(Burnside引理、Polya定理)
    是谁刚逃离期末考数学的魔爪,就来学这个抽象代数,确实是很抽象了(我摆了,更多细节证明看dalaoblog吧基本概念群群的定义设\(G\)是非空集合,其上有二元运算\(\cdot\),如果它们满足如下性质,则称\((G,\cdot)\)是一个群。封闭性:\(\foralla,b\inG,a\cdotb\inG\)结合律......
  • 数论函数及定理
    数论函数及定理积性函数附OIWiki链接。定义对于函数\(f(x)\),满足\(f(1)=1\)且\(\forall\gcd(a,b)=1,f(ab)=f(a)f(b)\)。则\(f(x)\)是积性函数。如果对所有\(a,b\)都成立,\(f(x)\)就是完全积性函数。例子欧拉函数\(\varphi(x)\)是积性函数。欧拉函数定义......
  • 群论基础与Pólya定理与基础多项式
    pdf记录一下比较厉害的数学科技。群若\(G\)为集合,且在\(G\)上有二元运算\(\cdot\),且满足如下性质,则称\(\left(G,\cdot\right)\)为一个群:结合律:对于\(\forall(a,b,c)\inG^3\),有\(abc=a(bc)\)单位元:有唯一的\(e\inG\),满足\(\foralla\inG,ae=ea=a\)逆元......
  • 条件概率、贝叶斯定理、独立性、全概率公式的概念辨别与深入理解
    条件概率、贝叶斯定理、独立性、全概率公式的概念辨别与深入理解在概率论中,条件概率、贝叶斯定理、独立性和全概率公式是几个核心且紧密相关的概念。为了帮助学生深刻理解这些概念,我们将逐一进行辨析,并展示它们之间的区别与联系。一、条件概率条件概率是指在一个事件B已......
  • 线性代数7.矩阵的逆-定义&定理
    7.矩阵的逆-定义和定理7.1逆矩阵的定义对于n阶矩阵A,存在一个n阶矩阵B,使:\[AB=BA=E\]则称矩阵A是可逆的。且B是A的逆矩阵,简称“逆阵”,记为:\[B=A^{-1}\]7.2对逆矩阵的理解若存在矩阵\(A_{n×n}\)、\(x_{n×1}\)、\(b_{n×1}\),使:\[b=Ax\]又存在矩阵\(B_{n×n}\),使:\[AB=E......
  • 调制定理
    调制定理是信号处理和通信领域中的重要定理,以下是关于它的详细介绍:定义与表达式调制定理指出,若\(m(t)=f(t)\cos\omega_ct\),则\(M(\omega)=\frac{1}{2}[F(\omega+\omega_c)+F(\omega-\omega_c)]\),其中\(M(\omega)\)是\(m(t)\)的傅里叶变换,\(F(\omega)\)是\(f(t)\)的傅里叶变换.......