数论1.0 (基础知识)

今天,ZUTTER终于下定决心去学了数论,然后

1437515-20180722174731018-2108107862.jpg

从基础说起

  • gcd

这个..感性理解一下就好了啊

gcd(int a,int b)
{
    if(b==0) return a;
    return(b,a%b);
}

证明:

1437515-20180722184529464-2105429073.gif

  • exgcd

扩展欧几里得算法,用于在已知(a,b)时求解(x,y) 使 ax+by=c (c | gcd(a,b))

int ex_gcd(int a,int b,int &x,int &y)
{
    int ret, tmp;
    if(! b)
    {
        x = 1, y = 0;
        return a;
    }
    ret=ex_gcd(b, a % b, x, y);
    tmp= ; x=y; y=tmp-a/b*y;
    return ret; 
}

证明:

1437515-20180722193310405-1821908889.png

又因为 1437515-20180722192208587-554125271.gif

所以任意1437515-20180722192856721-1058952639.gif都可为解


  • 排列

    求1437515-20180808204749814-423864357.gif%P      

  1. \(C_n^m=C_{n-1}^{m-1}+C_{n-1}^{m}\)  
m,n小于p时可以用O(n)的时间预处理,用O(1) 求值
  1. 1437515-20180808204321945-582641213.gif
  2. 当m,n过大p过小,m,n>p 时
  • 卢卡斯定理

      求c的公式 1437515-20180808185748046-1624446662.gif

  递归中每次当 m,n<p 时调用1中公式即可。

  • 二项式定理

  \((x+y)^n\)\(x^ty^{n-t}\) 的系数为 \(C_n^t\)


  • 中国剩余定理 Chinese Rimainder Theorem

  1437515-20180722200220711-1469339144.gif

  解法:

1437515-20180722200849535-1075724805.gif

比较两个CRT下整数

中国剩余定理 (Chinese Remainder Theorem, CRT) 可求解如下形式的一元线性同余方程组(其中\(n\) 两两互质):

1437515-20190223162800208-312059890.png

假设一中进制可以表示成

\(x=b_1+b_2\times2+b_3\times 2\times 3+...\)

然后左右两端同时

\(\mod n_1\ a_1=b_1\)

\(\mod n_2\ a_2=b_1+b_2n_1\)

$\mod n_3 a $

然后从大往小比较就行

1437515-20190223162654088-571510292.png


  • 博弈Nim

    \(n\)堆木棒,每堆中木棒数量为\(K_i\),两个人轮流取木棒,每次不能同时取两堆中的木棒也不能不取,取到最后一根木棒的人获胜,问对于当前状况是否是先手必胜局面。
    结论:若对于\(k_1 \bigoplus k_2 \bigoplus k_3 \bigoplus ... \bigoplus k_n\ !=0\) 都是先手必胜
    证明:咕咕咕(逃

  • 第二类斯特林数S

    1437515-20181003191150465-791322328.png
    S(n,x)表示把n个数分成x组的方案数

\[S_{i,j}=S_{i-1,j-1}+j*S_{i-1,j}\]
\[S(n,k) =\frac{1}{k!}\sum_{j=1}^{k}(-1)^{k-j} C(k,j) j^n\]


康托展开

公式 \[A_n\times (n-1)!+A_{n-1}\times (n-2)!+...+A_1\times 0!\]
其中\(A_i\)代表第\(i\)个数后比这个数小的数的个数
预处理阶乘后可以 \(O(n)\)求解
可以逆运算


逆元

1437515-20180722193830821-1323923938.gif时,称x为a在%p意义下的逆元,记作 1437515-20180722194033948-764499287.gif

解法:

  • 扩展欧几里得
    1437515-20180722194558533-400308994.gif
  • 费马小定理1437515-20180722195323724-1809470331.gif1437515-20180722195410602-511931645.gif
  • 线性求逆元 1437515-20180808185320954-1174473665.gif

  • 裴蜀定理

\[\forall a\perp b,\exists x,y\in\mathbb {Z}|ax+by=1\]

\[\forall gcd(a,b)|d,\exists x,y\in\mathbb{Z}|ax+by=d\]


除法分块

给定正整数\(n ,k\)计算\(\sum_{i=1}^nk\%i\)
原式可变为\(n*k-\sum^n_{i=1}\left \lfloor k/i \right \rfloor *i\)
\(\because \left \lfloor k/\left \lfloor k/\left \lfloor k/x \right \rfloor \right \rfloor \right \rfloor= \left \lfloor k/x\right \rfloor\)
\(\therefore\forall i\in[x,\left \lfloor k/x\right \rfloor],\left \lfloor k/i\right \rfloor\) 相同
所以答案会被分成\(\sqrt k\)个。


\[\forall a\perp b,\exists k>0|a^k\equiv 1(mod b)\]
最小的k称为a的阶,记作 \(<a>\)
\(<a>|\phi (n)\)
\(<a>=\phi(n),a\)是n的原根


拉格朗日插值
柿子
\[f(x)=\sum_{i=1}^d y_i\prod_{j\neq i}\frac {x-x_j}{x_i-x_j}\]

然后我们把1~d插进去就是

\[f(n)=\sum_{i=1}^d(-1)^{d-i}f(i)\frac {n(n-1)...(n-i+1)(n-i-1)...(n-d)}{i!(d-i)!}\]

转载于:https://www.cnblogs.com/ZUTTER/p/9601273.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值