首页 > 其他分享 >学习笔记:各种数学

学习笔记:各种数学

时间:2023-01-08 09:11:06浏览次数:50  
标签:pmod text ll 笔记 times 学习 数学 sum equiv

持续更新,主要是在自己忘了时能来这看看

费马小定理

若 \(p\) 为素数且 \(gcd(a,p)=1\),则 \(a^{p-1}\equiv 1(\text{mod}\; p)\)

欧拉定理

若 \(gcd(a,m)=1\),则\(a^{\phi(m)} \equiv 1 \; ( \text{mod} \;m)\)

扩展欧拉定理

若 \(b \ge \phi(p)\)有

\[a^b \equiv a^{b\;\text{mod} \;\phi(p)+\phi(p)} \; ( \text{mod} \;p) \]

扩展欧几里得

https://www.cnblogs.com/blue-tsg/p/16828622.html

Lucas定理

用于求解 \(n,m\) 很大但是 \(p\) 很小的时候

\[C(n,m)\equiv C(n/p,m/p)\times C(n\; \text{mod}\; p,m\; \text{mod}\; p)\;(\text{mod}\; p) \]

线性求逆元

\[inv_i=(-\frac{p}{i})\times inv_{p\;\text{mod} \;i} \]

中国剩余定理(crt)

\[ \begin{cases} x\equiv a_1\pmod {n_1}\\ x\equiv a_2\pmod {n_2}\\ \vdots\\ x\equiv a_k\pmod {n_k}\\ \end{cases} \]

其中 \(n_i\) 两两互质,求解最小正整数解 \(x\)

记\(n=\prod_{i=1}^{n}n_i,m_i=\frac{n}{n_i},m_i^{-1}\)为 \(m_i\) 关于 \(n_i\) 的逆元

\[x=\sum_{i=1}^{k}a_i\times m_i\times m_i^{-1} \]

证明:
因为 对于任意 \(j\;(i\neq j)\),有 \(m_j\equiv 0\;\pmod {n_i}\) 所以有:

\[ \begin{align} x &\equiv \sum_{j=1}^ka_jc_j\pmod {n_i}\nonumber\\ &\equiv a_ic_i\pmod {n_i}\nonumber\\ &\equiv a_i\cdot(m_i\cdot m_i^{-1})\pmod {n_i}\nonumber\\ &\equiv a_i\pmod {n_i}\nonumber \end{align} \]

扩展中国剩余定理

当 \(n_i\) 不互质时,考虑两两合并方程

对于:

\[\begin{cases} a\equiv r_1 \pmod {m_1} \\ a\equiv r_2 \pmod {m_2} \end{cases} \]

有:

\[a=k_1m_1+r_1=k_2m_2+r_2 \]

即:

\[k_1m_1-k_2m_2=r_2-r_1 \]

用 \(\text{exgcd}\) 求解此不定方程和判断无解

对与求出的特解 \(x'\),通解 \(x=x'+k\times \text{lcm}(m_1,m_2)\)

所以两方程可以合并为 \(a\equiv x' \pmod {\text{lcm}(m_1,m_2)}\)

代码
ll r1,m1,r2,m2,n;
ll exgcd(ll a,ll b,ll &x,ll &y){
    if(!b){
        x=1;y=0;return a;
    }
    ll g=exgcd(b,a%b,y,x);
    y-=(a/b)*x;
    return g;
}
ll lcm(ll a,ll b){
    ll x,y;
    ll g=exgcd(a,b,x,y);
    return a/g*b;
}
ll solve(ll a,ll b,ll c){
    ll x,y;
    ll g=exgcd(a,b,x,y);
    if(c%g) return -1;
    b/=g;c/=g;
    return (x*c%b+b)%b;
}
void merge(){
    ll x=solve(m1,m2,r2-r1);
    if(x==-1){puts("-1");exit(0);}
    r1=x*m1+r1;
    m1=lcm(m1,m2);
    r1=(r1%m1+m1)%m1;
}
signed main(){
    n=read();
    for(int i=1;i<=n;i++){
        if(i==1) m1=read(),r1=read();
        else m2=read(),r2=read(),merge();
    }
    printf("%lld\n",(long long)r1);
    return 0;
}

第二类斯特林数·行

定义:把 \(n\) 个不同的小球放进 \(m\) 个相同的盒子里的方案数,记作\(\begin{Bmatrix} n\\m\end{Bmatrix}\) 或 \(S(n,m)\)

递推式:

\[S(n,m)=S(n-1,m-1)+m \times S(n-1,m) \]

相当于讨论第 \(n\) 个球放哪,若放入一个新盒子,所有新盒子等价,方案数为 \(S(n-1,m-1)\),若放入已经有球的盒子,因为小球不一样,放入不同的盒子方案是不一样的,所以乘个 \(m\)

容斥原理:

\[S(n,m)=\frac{1}{m!}\sum_{k=0}^{m}(-1)^k\times C(m,k) \times (m-k)^n \]

相当于枚举空盒个数 \(k\),剩下的随便放,最后要求 \(k=0\) 时的值,但是有重复(随便放也可能产生空盒),所以容斥一下

把组合数拆开再化简一下

\[\begin{aligned} S(n,m)&=\frac{1}{m!}\sum_{k=0}^{m}(-1)^k\times \frac{m!}{k!(m-k)!} \times (m-k)^n \\ &=\sum_{k=0}^{m}\frac{(-1)^k}{k!}\times \frac{(m-k)^n}{(m-k)!} \end{aligned} \]

这是个卷积形式,直接一个NTT可以在 \(n\log n\)复杂度内求解
\(S(n,0),S(n,1) \ldots S(n,n)\)

一些性质:

  1. \(n^k=\sum_{i=0}^{k}S(k,i)\times i! \times C(n,i)\)

Min_Max 容斥

记 \(max(S)\) 为集合 \(S\) 中的最大值,\(min(S)\) 为集合 \(S\) 中的最小值,\(∣S∣\) 为集合 \(S\) 的元素数量,那么以下两个等式成立

\[max(S)=\sum_{T\subseteq S}(-1)^{|T|+1}min(T) \\ min(S)=\sum_{T\subseteq S}(-1)^{|T|+1}max(T) \]

性质:

1.在期望下成立,即:

\[E(max(S))=\sum_{T\subseteq S}(-1)^{|T|+1}E(min(T)) \\ E(min(S))=\sum_{T\subseteq S}(-1)^{|T|+1}E(max(T)) \]

标签:pmod,text,ll,笔记,times,学习,数学,sum,equiv
From: https://www.cnblogs.com/blue-tsg/p/17034092.html

相关文章

  • 学习笔记:多项式变换
    多项式学习笔记卷积形式:一般卷积形式\[F_i=\sum_{j\circk=i}a_jb_k\]当\(\circ\)为\(+\)是为常见的多项式加法卷积,\(\times\)有时也能转为加法,位运算是FWT,整除是狄......
  • 机器学习 吴恩达 第三章 笔记
    三、线性代数回顾(LinearAlgebraReview)3.1矩阵与向量  矩阵的维数=矩阵的行数\(\times\)矩阵的列数  有时会用R表示矩阵,而\(R^{4\times2}\)表示所有4$\t......
  • Linux运维笔记[9]-磁盘管理
    RAID简介[https://zhuanlan.zhihu.com/p/356299159][https://www.cnblogs.com/qi-yuan/p/11735525.html]磁盘阵列(RedundantArraysofIndependentDisks,RAID),有“独立磁......
  • SpringBoot笔记--文件配置加载顺序+整合其他框架
    内部文件配置加载顺序外部文件配置加载顺序jar包配置整合Junit若是业务管理类和测试类在同一个包下面,那么这句话,可以不加括号,只写注解名称否则,就必须指定到包......
  • 【¡Hola mundo!】测试文章和数模经验的笔记
    这是一篇测试文章没什么可说的,所以就放一篇数模经验的笔记8萨特沙盐同学的意识流数学建模经验分享————连续型问题建模与论文撰写提醒:建议同学们在参加之前对数学......
  • 1.8 吐槽 学习MFC的过程中真的受了一肚子气
    被消息系统卡了很久为了学习消息系统把别人的代码搬到自己的vs上,但同样的代码就是没法过编译然后自己按照教程写,但是消息完全没反应问老师,老师的回复我没看懂,又花了一天......
  • VirtualBox 笔记
    1tipsIDE设备挂载点在/dev/sr0sr1...#redhat9.12在VirtualBox下安装Linux的增强功能(鼠标无缝切换等)官网下载安装(可能要更新VirtualBox版本):Oracle_VM_Virtua......
  • 七DOM编程学习-概念引入
    ​  什么是DOM编程简单来说:DOM编程就是使用document对象的API完成对网页HTML文档进行动态修改,以实现网页数据和样式动态变化效果的编程.什么是documentdocument对......
  • 七DOM编程学习-概念引入
    ​  什么是DOM编程简单来说:DOM编程就是使用document对象的API完成对网页HTML文档进行动态修改,以实现网页数据和样式动态变化效果的编程.什么是documentdocument对......
  • java学习笔记(九)---maven
    1、概念maven是提供专门用于管理和构建Java项目的工具,它的主要功能有:提供了一套标准化的项目结构 提供了一套标准化的构建流程(编译,测试,打包,发布...)提供了一套依赖管......