OSDN Git Service

change \mathbb to \mathbf
authorxyf007 <41227294+xyf007@users.noreply.github.com>
Thu, 24 Dec 2020 14:23:19 +0000 (22:23 +0800)
committerGitHub <noreply@github.com>
Thu, 24 Dec 2020 14:23:19 +0000 (22:23 +0800)
由于近百年来数学符号演变,定义集合符号应使用 **人民教育出版社普通高中数学教材 A 版** 书写的版本,即 实数集 `$\mathbf{R}$`,正整数集 `$\mathbf{N}^*$` 等。同理,其他的符号应按照中国国内最常使用的版本来书写,重点参照数学和信息技术课本。

docs/math/pollard-rho.md

index 664b32d..343457a 100644 (file)
@@ -1,6 +1,6 @@
 ## 问题引入
 
-给定一个正整数 $N \in \mathbb{N}_{+}$ ,试快速找到它的一个因数。
+给定一个正整数 $N \in \mathbf{N}_{+}$ ,试快速找到它的一个因数。
 
 考虑朴素算法,因数是成对分布的, $N$ 的所有因数可以被分成两块,即 $[1,\sqrt N]$ 和 $[\sqrt N+1,N]$ 。只需要把 $[1,\sqrt N]$ 里的数遍历一遍,再根据除法就可以找出至少两个因数了。这个方法的时间复杂度为 $O(\sqrt N)$ 。
 
@@ -88,7 +88,7 @@ $$
 
 ## 优化随机算法
 
-最大公约数一定是某个数的约数,即 $\forall k \in\mathbb{N}_{+},\gcd(k,n)|n$ ,只要选适当的 $k$ 使得 $1<\gcd(k,n)< n$ ,就可以求得一个约数 $\gcd(k,n)$ 。满足这样条件的 $k$ 不少, $k$ 有若干个质因子,每个质因子及其倍数都是可行的。
+最大公约数一定是某个数的约数,即 $\forall k \in\mathbf{N}_{+},\gcd(k,n)|n$ ,只要选适当的 $k$ 使得 $1<\gcd(k,n)< n$ ,就可以求得一个约数 $\gcd(k,n)$ 。满足这样条件的 $k$ 不少, $k$ 有若干个质因子,每个质因子及其倍数都是可行的。
 
 将生日悖论应用到随机算法中,伪随机数序列中不同值的数量约为 $O(\sqrt{n})$ 个。设 $m$ 为 $n$ 的最小非平凡因子,显然有 $m\leq \sqrt{n}$ 。记 $y_i = x_i \pmod m$ ,推导可得:
 
@@ -136,7 +136,7 @@ $$
 
 ### 倍增优化
 
-使用 $\gcd$ 求解的时间复杂度为 $O(\log N)$ ,频繁地调用会使算法运行地很慢,可以通过乘法累积来减少求 $\gcd$ 的次数。如果 $1< \gcd(a,b)$ ,则有 $1< \gcd(ac,b)$ , $c\in \mathbb{N}_{+}$ ,并且有 $1< \gcd(ac \bmod b,b)=\gcd(a,b)$ 。
+使用 $\gcd$ 求解的时间复杂度为 $O(\log N)$ ,频繁地调用会使算法运行地很慢,可以通过乘法累积来减少求 $\gcd$ 的次数。如果 $1< \gcd(a,b)$ ,则有 $1< \gcd(ac,b)$ , $c\in \mathbf{N}_{+}$ ,并且有 $1< \gcd(ac \bmod b,b)=\gcd(a,b)$ 。
 
 我们每过一段时间将这些差值进行 $\gcd$ 运算,设 $s=\prod|x_0-x_j|\bmod n$ ,如果某一时刻得到 $s=0$ 那么表示分解失败,退出并返回 $n$ 本身。每隔 $2^k-1$ 个数,计算是否满足 $1< \gcd(s, n) < n$ 。此处取 $k=7$ ,可以根据实际情况进行调节。