[问题2014A01] 解答一(第一列拆分法,由张钧瑞同学提供)

[问题2014A01] 解答一(第一列拆分法,由张钧瑞同学提供)

(1)  当 \(a=0\) 时,这是高代书复习题一第 33 题,可用升阶法和 Vander Monde 行列式来求解,其结果为

\[|A|=\prod_{1\leq i<j\leq n}(x_j-x_i)\Big(\sum_{i=1}^nx_1\cdots\hat{x}_i\cdots x_n\Big),\]

其中 \(\hat{x}_i\) 表示 \(x_i\) 不在其中.

(2)  当 \(a\neq 0\) 时,我们有

\[|A|=\frac{1}{a}\begin{vmatrix} a & x_1(x_1-a) & x_1^2(x_1-a) & \cdots & x_1^{n-1}(x_1-a) \\ a & x_2(x_2-a) & x_2^2(x_2-a) & \cdots & x_2^{n-1}(x_2-a) \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ a & x_n(x_n-a) & x_n^2(x_n-a) & \cdots & x_n^{n-1}(x_n-a) \end{vmatrix}\]

\[=\frac{1}{a}\begin{vmatrix} x_1-(x_1-a) & x_1(x_1-a) & x_1^2(x_1-a) & \cdots & x_1^{n-1}(x_1-a) \\ x_2-(x_2-a) & x_2(x_2-a) & x_2^2(x_2-a) & \cdots & x_2^{n-1}(x_2-a) \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ x_n-(x_n-a) & x_n(x_n-a) & x_n^2(x_n-a) & \cdots & x_n^{n-1}(x_n-a) \end{vmatrix}.\]

按第一列拆分成两个行列式之差,有

\[|A|=\frac{1}{a}\begin{vmatrix} x_1 & x_1(x_1-a) & x_1^2(x_1-a) & \cdots & x_1^{n-1}(x_1-a) \\ x_2 & x_2(x_2-a) & x_2^2(x_2-a) & \cdots & x_2^{n-1}(x_2-a) \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ x_n & x_n(x_n-a) & x_n^2(x_n-a) & \cdots & x_n^{n-1}(x_n-a) \end{vmatrix}-\frac{1}{a}\begin{vmatrix} x_1-a & x_1(x_1-a) & x_1^2(x_1-a) & \cdots & x_1^{n-1}(x_1-a) \\ x_2-a & x_2(x_2-a) & x_2^2(x_2-a) & \cdots & x_2^{n-1}(x_2-a) \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ x_n-a & x_n(x_n-a) & x_n^2(x_n-a) & \cdots & x_n^{n-1}(x_n-a) \end{vmatrix}.\]

对于上面第一个行列式,将第一列乘以 \(a\) 加到第二列上;然后将第二列乘以 \(a\) 加到第三列上;\(\cdots\);然后将第 \(n-1\) 列乘以 \(a\) 加到第 \(n\) 列上;最后将第 \(i\) 行提出公因子 \(x_i\),可化为 Vander Monde 行列式. 对于上面第二个行列式,将第 \(i\) 行提出公因子 \(x_i-a\),可化为 Vander Monde 行列式. 因此,我们有

\[|A|=\frac{1}{a}x_1\cdots x_n\begin{vmatrix} 1 & x_1 & x_1^2 & \cdots & x_1^{n-1} \\ 1 & x_2 & x_2^2 & \cdots & x_2^{n-1} \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ 1 & x_n & x_n^2 & \cdots & x_n^{n-1} \end{vmatrix}\]

\[-\frac{1}{a}(x_1-a)\cdots(x_n-a)\begin{vmatrix} 1 & x_1 & x_1^2 & \cdots & x_1^{n-1} \\ 1 & x_2 & x_2^2 & \cdots & x_2^{n-1} \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ 1 & x_n & x_n^2 & \cdots & x_n^{n-1} \end{vmatrix}\]

\[=\frac{1}{a}\Big(x_1\cdots x_n-(x_1-a)\cdots(x_n-a)\Big)\prod_{1\leq i<j\leq n}(x_j-x_i).\]

  \(a\neq 0\) 时的结果,虽然 \(a\) 表面上出现在分母中 (只是为了看上去简洁),但其实它是一个关于 \(a\) 的多项式 (展开后即知),此时发现令 \(a=0\),马上可以得到 \(a=0\) 时的结果. 这说明 \(a\neq 0\) 时的结果和 \(a=0\) 时的结果可以统一起来. 为什么会发生这种情况呢?感兴趣的同学可以参考如下教学论文《文字行列式求值中的两个技巧》。

时间: 2024-10-10 18:06:33

[问题2014A01] 解答一(第一列拆分法,由张钧瑞同学提供)的相关文章

[问题2014A01] 解答三(升阶法,由董麒麟同学提供)

[问题2014A01] 解答三(升阶法,由董麒麟同学提供) 引入变量 \(y\),将 \(|A|\) 升阶,考虑如下行列式: \[|B|=\begin{vmatrix} 1 & x_1-a & x_1(x_1-a) & x_1^2(x_1-a) & \cdots & x_1^{n-1}(x_1-a) \\ 1 & x_2-a & x_2(x_2-a) & x_2^2(x_2-a) & \cdots & x_2^{n-1}(x_

[问题2014A02] 解答一(两次升阶法,由张钧瑞同学、董麒麟同学提供)

[问题2014A02] 解答一(两次升阶法,由张钧瑞同学.董麒麟同学提供) 将原行列式 \(D_n\) 升阶,考虑如下 \(n+1\) 阶行列式: \[|B|=\begin{vmatrix} 1 & -a_1 & -a_2 & \cdots & -a_{n-1} & -a_n \\ 0 & 0 & a_1+a_2 & \cdots & a_1+a_{n-1} & a_1+a_n \\ 0 & a_2+a_1 &

[问题2014A01] 解答二(后 n-1 列拆分法,由郭昱君同学提供)

[问题2014A01] 解答二(后 n-1 列拆分法,由郭昱君同学提供) \[|A|=\begin{vmatrix} 1 & x_1^2-ax_1 & x_1^3-ax_1^2 & \cdots & x_1^n-ax_1^{n-1} \\ 1 & x_2^2-ax_2 & x_2^3-ax_2^2 & \cdots & x_2^n-ax_2^{n-1} \\ \vdots & \vdots & \vdots & \vd

[问题2014A02] 解答二(求和法+拆分法,由张诚纯同学提供)

[问题2014A02] 解答二(求和法+拆分法,由张诚纯同学提供) 将行列式 \(D_n\) 的第二列,\(\cdots\),第 \(n\) 列全部加到第一列,可得 \[ D_n=\begin{vmatrix} \sum_{i=1}^na_i+(n-2)a_1 & a_1+a_2 & \cdots & a_1+a_{n-1} & a_1+a_n \\ \sum_{i=1}^na_i+(n-2)a_2 & 0 & \cdots & a_2+a_{n-1

ACM学习历程—BestCoder 2015百度之星资格赛1002 列变位法解密(vector容器)

Problem Description 列变位法是古典密码算法中变位加密的一种方法,具体过程如下 将明文字符分割成个数固定的分组(如5个一组,5即为密钥),按一组一行的次序整齐排列,最后不足一组不放置任何字符,完成后按列读取即成密文. 比如: 原文:123456789 密钥:4 变换后的矩阵: 1234 5678 9xxx (最后的几个x表示无任何字符,不是空格,不是制表符,就没有任何字符,下同) 密文:159263748 再比如: 原文:Hello, welcome to my dream w

百度之星资格赛--列变位法解密

列变位法解密 Accepts: 867 Submissions: 3035 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Description 列变位法是古典密码算法中变位加密的一种方法,具体过程如下 将明文字符分割成个数固定的分组(如5个一组,5即为密钥),按一组一行的次序整齐排列,最后不足一组不放置任何字符,完成后按列读取即成密文. 比如: 原文:123456

[JAVA] 冻结Excel的第一行或第一列

可以按照如下设置创建冻结窗口. sheet.createFreezePane( 3, 2, 3, 2 ); 前两个参数是你要用来拆分的列数和行数.后两个参数是下面窗口的可见象限,其中第三个参数是右边区域可见的左边列数,第四个参数是下面区域可见的首行. // 冻结第一行 sheet.createFreezePane( 0, 1, 0, 1 ); // 冻结第一列 sheet.createFreezePane( 1, 0, 1, 0 );

2015百度之星资格赛1002列变位法解密

Accepts: 1124 Submissions: 4157 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Description 列变位法是古典密码算法中变位加密的一种方法,具体过程如下 将明文字符分割成个数固定的分组(如5个一组,5即为密钥),按一组一行的次序整齐排列,最后不足一组不放置任何字符,完成后按列读取即成密文. 比如: 原文:123456789 密钥

2015百度之星 列变位法解密

列变位法解密 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Description 列变位法是古典密码算法中变位加密的一种方法,具体过程如下 将明文字符分割成个数固定的分组(如5个一组,5即为密钥),按一组一行的次序整齐排列,**最后不足一组不放置任何字符**,完成后按列读取即成密文. 比如: 原文:123456789 密钥:4 变换后的矩阵: [pre]1234