OSDN Git Service

arrange formula (#131)
authorXeonacid <h.dwwwwww@gmail.com>
Sun, 19 Aug 2018 06:09:54 +0000 (14:09 +0800)
committerGitHub <noreply@github.com>
Sun, 19 Aug 2018 06:09:54 +0000 (14:09 +0800)
docs/math/gcd.md
docs/math/ntt.md
docs/math/prime.md

index eaa9d5c..1fb54de 100644 (file)
@@ -12,7 +12,7 @@
 
 不妨设 $a > b$
 
-我们发现如果 b 是 a 的约数,那么 b 就是二者的最大公约数。
+我们发现如果 $b$ 是 $a$ 的约数,那么 $b$ 就是二者的最大公约数。
 下面讨论不能整除的情况, $a = b \times q + r$,其中 $r < b$。
 
 不难证明,$\gcd(a, b) = \gcd(b, r)$,这里两个数的大小是不会增大的,我们得到了关于两个数的最大公约数的一个递归求法。
@@ -33,7 +33,7 @@
 
 设 $a = p_{a_1}^{k_{a_1}}p_{a_2}^{k_{a_2}} \cdots p_{a_s}^{k_{a_s}}$, $b = p_{b_1}^{k_{b_1}}p_{b_2}^{k_{b_2}} \cdots p_{b_s}^{k_{b_s}}$
 
-我们发现,对于 a 和 b 的情况,二者的最大公约数等于
+我们发现,对于 $a$ 和 $b$ 的情况,二者的最大公约数等于
 
 $$
 p_1^{k_{\min(a_1, b_1)}}p_2^{k_{\min(a_2, b_2)}} \cdots p_s^{k_{\min(a_s, b_s)}}
index 94c6256..09f6619 100644 (file)
@@ -16,9 +16,7 @@ NTT 解决的是多项式乘法带模数的情况,可以说有些受模数的
 
 生成子群:$a \in S$ ​的生成子群 $<a> = \{a^{(k)}, k \geq 1 \}$ ​,$a$ 是 $< a >$ 的生成元
 
-阶:群 $S$ 中 $a$ 的阶是满足 $a^r=e$
-
-​的最小的 $r$, 符号 $ \operatorname{ord}(a)$ ​, 有 $ \operatorname{ord}(a) = |< a >|$​,显然成立。
+阶:群 $S$ 中 $a$ 的阶是满足 $a^r=e$ 的最小的 $r$, 符号 $ \operatorname{ord}(a) $ ​, 有 $ \operatorname{ord}(a) = |< a >| $​,显然成立。
 
 考虑群 $Z_n^ \times =\{[a], n \in Z_n : \gcd(a, n) = 1\}, |Z_n^ \times | = \phi(n)$
 
@@ -26,7 +24,7 @@ NTT 解决的是多项式乘法带模数的情况,可以说有些受模数的
 
 ### [原根](/math/primitive-root)
 
-$g$ 满足 $ \operatorname{ord}_n(g) = |Z_n^ \times | = \phi(n)$  ​,对于质数 $p$,也就是说 $g^i \bmod p, 0 \leq i < p$ ​结果互不相同.
+$g$ 满足 $ \operatorname{ord}_n(g) = |Z_n^ \times | = \phi(n) $  ​,对于质数 $p$,也就是说 $g^i \bmod p, 0 \leq i < p$ ​结果互不相同.
 
 模 $n$ 有原根的充要条件 : $n = 2, 4, p^e, 2 \times p^e$
 
@@ -47,9 +45,7 @@ $g$ 满足 $ \operatorname{ord}_n(g) = |Z_n^ \times | = \phi(n)$  ​,对于
 
 对于质数 $p=qn+1, (n=2^m)$ ​, 原根 $g$ 满足 $g^{qn} \equiv 1 (\bmod p)$​, 将 $g_n=g^p(\bmod q)$ 看做 $\omega_n$ 的等价,择其满足相似的性质,比如 $g_n^n \equiv 1 (\bmod p), g_n^{n/2} \equiv -1 (\bmod p)$
 
-然后因为这里涉及到数论变化,所以这里的 $N$(为了区分 FFT 中的 n,我们把这里的 n 称为 $N$)可以比 FFT 中的 n 大,但是只要把 $\frac{qN}{n}$
-
-看做这里的 $q$ 就行了,能够避免大小问题。。。
+然后因为这里涉及到数论变化,所以这里的 $N$(为了区分 FFT 中的 n,我们把这里的 n 称为 $N$)可以比 FFT 中的 n 大,但是只要把 $\frac{qN}{n}$ 看做这里的 $q$ 就行了,能够避免大小问题。。。
 
 常见的有
 
index 72e4e43..519770a 100644 (file)
@@ -1,6 +1,6 @@
 我们说,如果存在一个整数 $k$,使得 $a = kd$,则称 $d$ 整除 $a$,记做 $d | a$,称 $a$ 是 $d$ 的倍数,如果 $d > 0$,称 $d$ 是 $a$ 的约数。特别地,任何整数都整除 $0$。
 
-显然大于 $1$ 的正整数 $a$ 可以被 $1$ 和 $a$整除,如果除此之外 $a$ 没有其他的约数,则称 $a$ 是素数,又称质数。任何一个大于 $1$ 的整数如果不是素数,也就是有其他约数,就称为是合数。$1$ 既不是合数也不是素数。
+显然大于 $1$ 的正整数 $a$ 可以被 $1$ 和 $a$ 整除,如果除此之外 $a$ 没有其他的约数,则称 $a$ 是素数,又称质数。任何一个大于 $1$ 的整数如果不是素数,也就是有其他约数,就称为是合数。$1$ 既不是合数也不是素数。
 
 ## 素数判定
 
@@ -19,9 +19,9 @@ bool isPrime(a) {
 
 这样做是十分稳妥了,但是真的有必要每个数都去判断吗?
 
-很容易发现这样一个事实:如果 $x$ 是 $a$ 的约数,那么 $a / x$ 也是 $a$ 的约数。
+很容易发现这样一个事实:如果 $x$ 是 $a$ 的约数,那么 $\frac{a}{x}$ 也是 $a$ 的约数。
 
-这个结论告诉我们,对于每一对 $(x, a / x)$,只需要检验其中的一个就好了。为了方便起见,我们之考察每一对里面小的那个数。不难发现,所有这些较小数就是 $[1 .. \sqrt(a)]$ 这个区间里的数。
+这个结论告诉我们,对于每一对 $(x, \frac{a}{x} )$,只需要检验其中的一个就好了。为了方便起见,我们之考察每一对里面小的那个数。不难发现,所有这些较小数就是 $[1 \cdots \sqrt(a)]$ 这个区间里的数。
 
 由于 $1$ 肯定是约数,所以不检验它。
 
@@ -67,15 +67,13 @@ bool millerRabbin(int n) {
 
 那么,如何来求解反素数呢?
 
-首先,既然要求因子数,我首先想到的就是素因子分解。把 n 分解成 $n=p_{1}^{k_{1}}p_{2}^{k_{2}} \cdots p_{n}^{k_{n}}$
-
-的形式,其中 p 是素数,k 为他的指数。这样的话总因子个数就是 $(k_1+1) \times (k_2+1) \times (k_3+1) \cdots \times (k_n+1)$。
+首先,既然要求因子数,我首先想到的就是素因子分解。把 $n$ 分解成 $n=p_{1}^{k_{1}}p_{2}^{k_{2}} \cdots p_{n}^{k_{n}}$ 的形式,其中 $p$ 是素数,$k$ 为他的指数。这样的话总因子个数就是 $(k_1+1) \times (k_2+1) \times (k_3+1) \cdots \times (k_n+1)$。
 
 但是显然质因子分解的复杂度是很高的,并且前一个数的结果不能被后面利用。所以要换个方法。
 
 我们来观察一下反素数的特点。
 
-1. 反素数肯定是从 2 开始的连续素数的幂次形式的乘积。
+1. 反素数肯定是从 $2$ 开始的连续素数的幂次形式的乘积。
 
 2. 数值小的素数的幂次大于等于数值大的素数,即 $n=p_{1}^{k_{1}}p_{2}^{k_{2}} \cdots p_{n}^{k_{n}}$ 中,有 $k1 \geq k2 \geq k3 \geq \cdots \geq k_n$
 
@@ -87,7 +85,7 @@ bool millerRabbin(int n) {
 
 另外还有两个问题,
 
-1. 对于给定的 n,要枚举到哪一个素数呢?
+1. 对于给定的 $n$,要枚举到哪一个素数呢?
 
 最极端的情况大不了就是 $n=p_{1}*p_{2} \cdots p_{n}$ ,所以只要连续素数连乘到刚好小于等于 $n$ 就可以的呢。再大了,连全都一次幂,都用不了,当然就是用不到的啦!