OSDN Git Service

style: format markdown files with remark-lint
author24OI-bot <15963390+24OI-bot@users.noreply.github.com>
Thu, 29 Oct 2020 06:55:34 +0000 (02:55 -0400)
committer24OI-bot <15963390+24OI-bot@users.noreply.github.com>
Thu, 29 Oct 2020 06:55:34 +0000 (02:55 -0400)
docs/math/lucas.md

index ca2ea1f..a436b21 100644 (file)
@@ -63,12 +63,15 @@ Lucas 定理中对于模数 $p$ 要求必须为素数,那么对于 $p$ 不是
 
 #### 层次一
 
-根据**唯一分解定理**,将 $p$ 质因数分解:
+根据 **唯一分解定理** ,将 $p$ 质因数分解:
+
 $$
 p=
 {q_1}^{\alpha_1}\cdot{q_2}^{\alpha_2}\cdots{q_r}^{\alpha_r}=\prod_{i=1}^{r}{q_i}^{\alpha_i}
 $$
-对于任意 $i,j$,有 ${p_i}^{\alpha_i}$ 与 ${p_j}^{\alpha_j}$ 互质,所以可以构造如下 $r$ 个同余方程:
+
+对于任意 $i,j$ ,有 ${p_i}^{\alpha_i}$ 与 ${p_j}^{\alpha_j}$ 互质,所以可以构造如下 $r$ 个同余方程:
+
 $$
 \left\{
 \begin{aligned}
@@ -79,92 +82,99 @@ a_r\equiv C_n^m&\pmod {{q_r}^{\alpha_r}}\\
 \end{aligned}
 \right.
 $$
-我们发现,在求出 $a_i$ 后,就可以用中国剩余定理求解出 $C_n^m$。
+
+我们发现,在求出 $a_i$ 后,就可以用中国剩余定理求解出 $C_n^m$ 。
 
 #### 层次二
 
-根据同余的定义,$a_i=C_n^m\bmod {q_i}^{\alpha_i}$,问题转化成,求 $C_n^m\mod q^k(q\in\{$ 质数 $\})$ 的值.
+根据同余的定义, $a_i=C_n^m\bmod {q_i}^{\alpha_i}$ ,问题转化成,求 $C_n^m\mod q^k(q\in\{$ 质数 $\})$ 的值。
 
-根据组合数定义 $C_n^m=\frac{n!}{m!(n-m)!}$,$C_n^m\bmod q^k=\frac{n!}{m!(n-m)!}\bmod q^k$.
+根据组合数定义 $C_n^m=\frac{n!}{m!(n-m)!}$ , $C_n^m\bmod q^k=\frac{n!}{m!(n-m)!}\bmod q^k$ .
 
 由于式子是在模 $q^k$ 意义下,所以分母要算乘法逆元。
 
-同余方程 $ax\equiv 1\pmod p$ (即乘法逆元)**有解**的充要条件为 $gcd(a,p)=1$(裴蜀定理),
+同余方程 $ax\equiv 1\pmod p$ (即乘法逆元) **有解** 的充要条件为 $gcd(a,p)=1$ (裴蜀定理),
 
-然而**无法保证有解**,发现无法直接求 $\operatorname{inv}_{m!}$ 和 $\operatorname{inv}_{(n-m)!}$
+然而 **无法保证有解** ,发现无法直接求 $\operatorname{inv}_{m!}$ 和 $\operatorname{inv}_{(n-m)!}$ 
 
 所以将原式转化为:
+
 $$
 \frac{\frac{n!}{q^x}}{\frac{m!}{q^y}\frac{(n-m)!}{q^z}}q^{x-y-z} \bmod q^k
 $$
-$x$ 表示 $n!$ 中包含多少个 $q$ 因子,$y,z$ 同理.
+
+ $x$ 表示 $n!$ 中包含多少个 $q$ 因子, $y,z$ 同理。
 
 #### 层次三
 
 问题转化成,求形如:
+
 $$
 \frac{n!}{q^x}\bmod q^k
 $$
+
 的值。
 
-先考虑 $n!\bmod q^k$
+先考虑 $n!\bmod q^k$ 
 
 比如 $n=22,p=3,k=2$ 时:
 
-$22!=1\times 2\times 3\times 4\times 5\times 6\times 7\times 8\times 9\times 10\times 11\times 12$
+ $22!=1\times 2\times 3\times 4\times 5\times 6\times 7\times 8\times 9\times 10\times 11\times 12$ 
 
-$\times 13\times 14\times 15\times 16\times 17\times 18\times 19\times20\times21\times22$
+ $\times 13\times 14\times 15\times 16\times 17\times 18\times 19\times20\times21\times22$ 
 
 将其中所有 $p$ 的倍数提取,得到:
 
-$22!=3^7 \times (1\times 2\times 3\times 4\times 5\times 6\times 7)$
-$\times(1\times 2\times 4\times 5\times 7\times 8\times 10 \times 11\times 13\times 14\times 16\times 17\times 19 \times 20 \times 22 )$
+ $22!=3^7 \times (1\times 2\times 3\times 4\times 5\times 6\times 7)$  $\times(1\times 2\times 4\times 5\times 7\times 8\times 10 \times 11\times 13\times 14\times 16\times 17\times 19 \times 20 \times 22 )$ 
 
 可以看到,式子分为三个部分:
 
-**第一部分**是 $3$ 的幂,次数是 $\lfloor\frac{n}{q}\rfloor$
+ **第一部分** 是 $3$ 的幂,次数是 $\lfloor\frac{n}{q}\rfloor$ 
 
-**第二部分**是 $7!$,即 $\lfloor\frac{n}{q}\rfloor!$,由于阶乘中仍然可能有 $q$ 的倍数,考虑递归求解;
+ **第二部分** 是 $7!$ ,即 $\lfloor\frac{n}{q}\rfloor!$ ,由于阶乘中仍然可能有 $q$ 的倍数,考虑递归求解;
 
-**第三部分**是 $n!$ 中与 $q$ 互质的部分的乘积,具有如下性质:
+ **第三部分** 是 $n!$ 中与 $q$ 互质的部分的乘积,具有如下性质:
 
-$1\times 2\times 4\times 5\times 7\times 8\equiv10 \times 11\times 13\times 14\times 16\times 17\ \pmod{ 3^2}$
+ $1\times 2\times 4\times 5\times 7\times 8\equiv10 \times 11\times 13\times 14\times 16\times 17\ \pmod{ 3^2}$ 
 
 即:
+
 $$
 \prod_{i,(i,q)=1}^{q^k}i\equiv\prod_{i,(i,q)=1}^{q^k}(i+tq^k)\ mod\ q^k
 $$
-($t$ 是任意正整数)
-
-$\prod_{i,(i,q)=1}^{p^k}i$ 一共循环了 $\lfloor\frac{n}{q^k}\rfloor$ 次,暴力求出 $\prod_{i,(i,q)=1}^{q^k}i$ ,然后用快速幂求
 
-$\lfloor\frac{n}{q^k}\rfloor$ 次幂
+( $t$ 是任意正整数)
 
-最后要乘上 $\prod_{i,(i,q)=1}^{n\ mod\ q^k}i$ ,即 $19\times 20\times 22$,显然长度小于 $q^k$,暴力乘上去.
+ $\prod_{i,(i,q)=1}^{p^k}i$ 一共循环了 $\lfloor\frac{n}{q^k}\rfloor$ 次,暴力求出 $\prod_{i,(i,q)=1}^{q^k}i$ ,然后用快速幂求
 
-上述三部分乘积为 $n!$。最终要求的是 $\frac{n!}{q^x}\bmod{q^k}$.
+ $\lfloor\frac{n}{q^k}\rfloor$ 次幂
 
+最后要乘上 $\prod_{i,(i,q)=1}^{n\ mod\ q^k}i$ ,即 $19\times 20\times 22$ ,显然长度小于 $q^k$ ,暴力乘上去。
 
+上述三部分乘积为 $n!$ 。最终要求的是 $\frac{n!}{q^x}\bmod{q^k}$ .
 
 所以有:
+
 $$
 {n!}=q^{\lfloor\frac{n}{p}\rfloor}\cdot (\lfloor\frac{n}{q}\rfloor)!\cdot(\prod_{i,(i,q)=1}^{q^k}i)^{\lfloor\frac{n}{q^k}\rfloor}\cdot(\prod_{i,(i,q)=1}^{n\bmod q^k}i)
 $$
+
 于是:
+
 $$
 \frac{n!}{q^k}=
 {(\lfloor\frac{n}{q}\rfloor)!}\cdot(\prod_{i,(i,q)=1}^{q^k}i)^{\lfloor\frac{n}{q^k}\rfloor}\cdot(\prod_{i,(i,q)=1}^{n\bmod q^k}i)
 $$
 
-**${(\lfloor\frac{n}{q}\rfloor)!}$ 同样是一个数的阶乘,所以也可以分为上述三个部分,于是可以递归求解。**
+ ** ${(\lfloor\frac{n}{q}\rfloor)!}$ 同样是一个数的阶乘,所以也可以分为上述三个部分,于是可以递归求解。** 
 
 #### 总结
 
 对于 $C_n^m\bmod p$ ,我们将其转化为 $r$ 个形如 $a_i\equiv C_n^m\pmod {{q_i}^{\alpha_i}}$ 的同余方程并分别求解。
 
-对于 $a_i\equiv C_n^m\pmod {{q_i}^{\alpha_i}}$,将 $C_n^m$ 转化为 $\frac{\frac{n!}{q^x}}{\frac{m!}{q^y}\frac{(n-m)!}{q^z}}q^{x-y-z}$,于是可求逆元。
+对于 $a_i\equiv C_n^m\pmod {{q_i}^{\alpha_i}}$ ,将 $C_n^m$ 转化为 $\frac{\frac{n!}{q^x}}{\frac{m!}{q^y}\frac{(n-m)!}{q^z}}q^{x-y-z}$ ,于是可求逆元。
 
-对于 $\frac{m!}{q^y}$ 和 $\frac{(n-m)!}{q^z}$,将其变换整理,可递归求解。
+对于 $\frac{m!}{q^y}$ 和 $\frac{(n-m)!}{q^z}$ ,将其变换整理,可递归求解。
 
 ???+note "代码实现"
     其中 `int inverse(int x)` 函数返回 $x$ 在模 $p$ 意义下的逆元。