具体数学-第10课(素数和阶乘的有趣性质)

关注公众号【算法码上来】,每日算法干货马上就来!

欧几里得数


首先我们来证明一下,素数有无穷多个。

假设素数只有$k$个,分别为$2,3, \ldots ,{P_k}$,那么我们构造下面的数字:
<!–swig2–>
显然$M$无法被$2,3, \ldots ,{P_k}$中的任意一个整除,那么要么$M$可以被其他的素数整除,要么$M$自己就是一个素数。所以素数有无穷多个。

下面我们来定义欧几里得数,是用递归形式来定义的:
<!–swig7–>

那么欧几里得数是否是素数呢?当然不是的,${e_5} = 1807 = 13 \cdot 139$。

但是欧几里得数还是有很多奇妙的性质。

性质1
<!–swig9–>
证明:
假设$n > m$,那么有
<!–swig11–>
性质2
如果令$q_j$等于$e_j$的最小素因子,那么${q_1},{q_2}, \ldots $就是一个不重复的素数序列,这也证明了素数有无穷多个。
性质3
<!–swig15–>
在后面的章节可以证明:
<!–swig16–>
其中$E \approx 1.264$

下面我们稍稍探究一下下面这个数的性质:
<!–swig18–>
这个数如果是素数,那么就被叫做梅森素数,那么它在什么情况下是素数呢?

首先$p$不能是合数,因为有
<!–swig20–>
但是如果$p$是素数,这个数也不一定是素数,2017年年末美国一个电气工程师发现了人类历史上最大的梅森素数——${2^{77232917}} - 1$。

阶乘

阶乘定义如下:
<!–swig23–>
所以有
<!–swig24–>
由基本不等式可以得到
<!–swig25–>
所以
<!–swig26–>
所以
<!–swig27–>
这里得到了阶乘的一个粗略范围,在后面章节中,我们会得到阶乘的一个更精确的表达式:
<!–swig28–>
这就是斯特林数,搞ACM还是很有用的。

下面我们来探讨$n!$中含有多少个素因子$p$,个数记为${\varepsilon _p}(n!)$。

从特殊情况讨论起,当$p = 2$的时候,我们首先看$n!$含有多少个2,然后看有多少个4,再看有多少个8,依次下去,所以答案为:
<!–swig34–>
可以看出,这个答案不就是$n$的二进制表示不停右移1位,然后相加吗?所以又可以写成:
<!–swig36–>
其中${\nu _2}(n)$表示$n$的二进制表示中1的个数。

推广到一般情况:
<!–swig39–>
放缩一下有:
<!–swig40–>

如果我们令$p = 2$和$p = 3$可以发现:
<!–swig43–>
但是这个式子在什么情况下相等呢?这仍然是一个未解之谜。

所以$p$对$n!$的贡献度满足如下式子:
<!–swig46–>
又因为$p \le 2^{p - 1}$,所以
<!–swig48–>
假设素数只有$k$个,分别为$2,3, \ldots ,{P_k}$,那么有
<!–swig51–>
如果我们令$n = {2^{2k}}$,那么
<!–swig53–>
这与我们之前推过的不等式矛盾!所以一定有无穷个素数。

设小于等于$n$的素数个数为$\pi (n)$,所以
<!–swig56–>
根据斯特林数公式,我们可以得到
<!–swig57–>

互素


定义

$m$和$n$互素定义为$gcd(m, n) = 1$,记作$m \bot n$。

互素也有很多性质。

性质1
<!–swig62–>
性质2
<!–swig63–>
其中${m_p},{n_p}$就是两个数的素数指数表示法,详细定义见上一节课。
或者可以表示为
<!–swig65–>
性质3
<!–swig66–>

Stern-Brocot树



如上图所示,Stern-Brocot树就是0到1之间的分数生成的一棵二叉树。

初始时只有$\frac{0}{1},\frac{1}{0}$两个数,第一轮将两者分母相加,分子也相加作为新的分数的分母分子。第二轮再对相邻的两个分数做相同的操作,生成新的分数序列。不断生成下去,得到了上图的二叉树。

Stern-Brocot树有下面四个性质:

  1. 0到1之间的所有有理数都出现在了这棵树中。
  2. 每个分数仅出现了1次。
  3. 每个分数都是不可约分的,即分子分母互素。
  4. 生成的序列是单调递增的。

下面我们来一个一个证明。

引理
对于相邻的两个分数$\frac{m}{n},\frac{ {m'}}{ {n'}}$,满足:
<!–swig69–>
证明
用数学归纳法证明。

性质4就是证明:
<!–swig70–>
结论是很显然的,这样性质2同时就成立了。

性质1的话,对于任意有理数$\frac{a}{b}$,假设$\frac{m}{n} < \frac{a}{b} < \frac{ {m'}}{ {n'}}$。
我们采用如下策略生成$\frac{a}{b}$。

  • 如果$\frac{ {m + m'}}{ {n + n'}} = \frac{a}{b}$,那么成功。
  • 如果$\frac{ {m + m'}}{ {n + n'}} < \frac{a}{b}$,那么令$m = m + m',n = n + n'$。
  • 如果$\frac{ {m + m'}}{ {n + n'}} > \frac{a}{b}$,那么令$m' = m + m',n' = n + n'$。

那么有
<!–swig79–>
所以
<!–swig80–>
而左边式子就等于$a + b$,所以
<!–swig82–>
因为$m,n,m',n'$都在不断增加,所以最多$a + b$轮就能生成$\frac{a}{b}$。

性质3的话,同样用数学归纳法。通过引理可以得到
<!–swig86–>
由扩展欧几里得定理可以得到$m + m'$与$n + n'$互素。

Farey序列
我们引申出Farey序列的概念,定义如下:
<!–swig89–>
关于它的更多性质,留到下一节课继续。


赏

   转载规则


《具体数学-第10课(素数和阶乘的有趣性质)》 由 韦阳 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
具体数学-第11课(Stern-Brocot树和同余关系) 具体数学-第11课(Stern-Brocot树和同余关系)
关注公众号【算法码上来】,每日算法干货马上就来! Stern-Brocot树 我们接着上节课讲到的Stern-Brocot树继续往下讲。 LR序列表示对于任意分数$\frac{a}{b}$,我们从$\frac{1}{1}$开始走到它所
2018-05-07
下一篇 
K-best Iterative Viterbi Parsing K-best Iterative Viterbi Parsing
关注公众号【算法码上来】,每日算法干货马上就来! 本文链接:EACL17 介绍 CKY算法或维特比inside算法是成分句法分析的主要方法之一,但是当产生式数量特别大之后,时间复杂度也线性增大。可行的一种方法是剪枝,但是剪枝会造成准确
2018-04-24
  目录