yzl_lec4

date: 25.08.13

课程大纲

  • 拾遗:置换与矩阵乘法
  • Frobenius 硬币问题
  • 整数一次不定方程
  • 置换与矩阵乘法

    我们之前讲了一道利用 置换的结合性、可逆性 的题目。
    实际上,置换可以看成是一种特殊的矩阵乘法。

    矩阵乘法定义

    对于矩阵 $A_{n\times m}$ 和矩阵 $B_{m\times p}$,定义它们的乘法得到一个 $C_{n\times p}$ 的矩阵。 其中 $C$ 的第 $i$ 行第 $j$ 列的元素由如下求和给出 $$ C_{i,j} = \sum\limits_{k=1}^{m} A_{i,k}\cdot B_{k,j} $$

    置换矩阵的定义

    每个置换都可以对应一个 置换矩阵
    这是一个只有 0 和 1 的方阵,每一行和每一列都恰好只有一个 1。
    以 $M\times v$(矩阵左乘向量)为例,这时 $$ M_{i,j} = \left[\sigma(j)=i\right] $$ 这样的话,设 $\sigma(v) = v'$,则 $$ v'_{i,1} = \sum\limits_{k}M_{i,k} v_{k,1} = \sum\limits_{k}\left[\sigma(k)=i\right] v_{k,1} $$

    例如,置换 $ \sigma = \left(\begin{aligned} 1\,2\,3\\ 3\,1\,2\end{aligned} \right) $ 表示 $$1 \to 3,\;2 \to 1,\;3 \to 2$$, 对应的置换矩阵为:

    $$ P = \begin{bmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \\ 1 & 0 & 0 \end{bmatrix} $$

    用这个矩阵左乘一个向量 $v = [v_1, v_2, v_3]^T$,结果为:

    $$ \begin{bmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \\ 1 & 0 & 0 \end{bmatrix} \,v = \begin{bmatrix} v_2 \\ v_3 \\ v_1 \end{bmatrix} $$

    这正是置换 $\sigma$ 对向量的作用。

    复合

    若干个置换之间的复合,对应若干个置换矩阵的 矩阵乘法
    $$ \sigma_3(\sigma_2(\sigma_1(v))) \sim M_3\times (M_2\times (M_1\times v)) $$

    结合性

    置换的结合性 对应矩阵乘法的结合性。

    矩阵乘法的结合性证明

    令 \(A\) 为 \(n\times m\) 矩阵,\(B\) 为 \(m\times p\) 矩阵,\(C\) 为 \(p\times q\) 矩阵。我们要证明:

    \[ (AB)C = A(BC). \]

    记 \((AB)C\) 在第 \(x\) 行第 \(y\) 列的元素为:

    \[ \bigl((AB)C\bigr)_{x,y} = \sum_{k=1}^{p} (AB)_{x,k}\;C_{k,y} = \sum_{k=1}^{p}\Bigl(\sum_{j=1}^{m} A_{x,j}\,B_{j,k}\Bigr)\;C_{k,y}. \]

    交换求和次序得:

    \[ \bigl((AB)C\bigr)_{x,y} = \sum_{j=1}^{m} A_{x,j}\;\Bigl(\sum_{k=1}^{p} B_{j,k}\,C_{k,y}\Bigr) = \sum_{j=1}^{m} A_{x,j}\,(BC)_{j,y} = \bigl(A(BC)\bigr)_{x,y}. \]

    由于上述等式对所有 \(x=1,\dots,n\)、\(y=1,\dots,q\) 成立,故

    \[ (AB)C = A(BC). \]

    *可逆性

    只有 $n\times n$ 且行列式 $\det$ 非零的矩阵才有可逆性。
    置换矩阵是 $n\times n$ 的,并且行列式是 $1$ 或者 $-1$。所以有可逆性。

    Frobenius 硬币问题

    问题描述

    硬币问题要求找出,仅使用指定面额的硬币无法获得的最大金额。例如,仅使用面额为 3 和 5 的硬币无法获得的最大金额是 7 单位。对于给定的一组硬币面额,该问题的解称为该组的 Frobenius 数。

    Frobenius 数的存在性

    如果硬币面额的集合的 $\gcd = g \not= 1$,那么它们只能表示出 $g$ 的倍数,显然可以取出任意大的无法被表示的数。

    所以剩下要讨论的就是:硬币面额的集合的 $\gcd$ 为 $1$ 的情况。 实际上,这种情况 Frobenius 数存在。然而仅仅是这样一个存在性的证明就非常复杂了。

    【NOIP 2017 提高组】小凯的疑惑

    它研究的是 $n=2$ 种面值均为正整数且 $\gcd = 1$ 的情况。 它有一个简单的结论:$a_1\cdot a_2 - a_1 - a_2$。(discovered by James Joseph Sylvester in 1882.)

    目前没有人类发现 $n \ge 3$ 的简单结论。

    这个边界点上不可行

    反证法,然后用不等式放缩找矛盾。

    超过这个边界后均可行

    若 $\gcd(a_1,a_2)=1$,则

    $$ \forall n \ge (a_1-1)(a_2-1), \quad \exists\;(\rho,\sigma) \text{ 满足:} $$

    • $\rho\ge 0, \sigma\ge 0$
    • $n = \rho a_1 + \sigma a_2$
  • 设 $n \ge (a_1-1)(a_2-1)$。
  • 因 $\gcd(a_1,a_2)=1$,有 $$ n - j a_2, \quad j=0,1,\dots,a_1-1 $$ 在模 $a_1$ 下两两不同。
  • 存在 $\sigma \ge 0$ 和整数 $\rho$ 使得: $$ \rho\cdot a_1 = n - \sigma a_2 $$
  • 这时候你可能在想,可没有可能 $\sigma$ 取得很大,会不会导致 $\rho$ 为负数呢?

    $$ \rho a_1 = n - \sigma a_2 \ge -a_1 + 1 > -a_1 $$

    因此 $\rho \ge 0$。

    整数二元一次不定方程

    其实我们刚刚研究的东西反而更困难一点,因为硬币数量是非负的。

    下面研究的这个方程,主要就是把之前的问题去掉非负的限制。

    问题描述

    对于固定的 $(a,b,val)$,我希望研究满足 $$ a\cdot x + b\cdot y = val $$ 的解集 $\{(x,y): a\cdot x + b\cdot y = val\}$。这个集合实际上是由 $a,b,val$ 共同确定,所以这里记作 $$ S(a,b,val) $$

    平凡情况:$val$ 不是 $\gcd(a,b)$ 的倍数

    这个时候 $S(a,b,val)$ 为空集。

    简化问题

    不妨只研究 $val = val'\cdot \gcd(a,b)$ 的情况。

    并且,由 $\gcd$ 的定义可知,同样能把 $a,b$ 分别表示成 $$ a = a'\cdot \gcd(a,b), b = b'\cdot \gcd(a,b) $$ 于是可以想到约去这个公共的因子,得到 $$ S(a,b,val) = S(a',b',val') $$

    新问题

    可以发现,这等价于说我只需要研究互质的 $a,b$ 的解集 $S(a,b,val)$。

    同一解集中,元素之间的关系

    条件 $(x_1,y_1),(x_2,y_2)\in S(a,b,val)$,可以等价成另外一个什么条件?

    特解与通解

    特解指的是,在 $S(a,b,val)$ 中找出其中一个元素。这个只需要构造性找到即可。

    通解指的是,通过某个特解去刻画 $S(a,b,val)$ 中的所有元素。这个通过前面的分析,发现也并不困难。

    寻找特解

    如果能找到 $S(a,b,1)$ 的特解,则容易构造 $S(a,b,val)$ 的特解。

    扩展欧几里得算法(ex-gcd)

    通过算法的过程,可以构造性地证明,对于 $a,b$, 存在 $(x_0,y_0)$ 使得 $$ ax_0 + by_0 = \gcd(a,b) $$

    扩展欧几里得算法运算的值域上界

    只要在递归出口 $$ (a,b) = (\gcd(a,b),0) $$ 设置 $(x,y) = (1,0)$,则通过数学归纳法可以证明运算过程中始终有 $$ |x|\le \max(\frac{b}{2\gcd(a,b)},1) $$

    多元情况?

    这里只研究解的存在性。即满足 $$ a_1x_1 + a_2x_2 + a_3x_3 = \gcd(a_1,a_2,a_3) $$ 的 $(x_1,x_2,x_3)$ 是否存在。