[问题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 & \vdots & \vdots \\ 1 & x_n^2-ax_n & x_n^3-ax_n^2 & \cdots & x_n^n-ax_n^{n-1} \end{vmatrix}.\]

从第二列开始,每一列都可记做 “1” 和 “2” 两个部分,分别对后 \(n-1\) 列进行拆分,共可拆成 \(2^{n-1}\) 个行列式之和. 我们来考虑拆分出来的这些行列式,假设第 \(i\) 列是从左至右第一个选择 “1” 的列,由行列式的性质,要使拆分出来的行列式非零,则第 \(i+1,\cdots,n\) 列都要选择 “1”,此时前面的第 \(2,\cdots,i-1\) 列都是选择 “2”,因此每一列都可以提取公因子 \(-a\),行列式可提取出 \((-a)^{i-1}\). 根据上面的分析,可得

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

\[+\cdots+(-a)^{n-1}\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}.\]

把 \(|A|\) 看成是按第一行进行展开的 \(n+1\) 阶行列式,有

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

当 \(a\neq 0\) 时,我们有 (接下去的一步是按第一列进行拆分):

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

\[=-\frac{1}{a}\Big(\prod_{1\leq i<j\leq n}(x_j-x_i)\prod_{i=1}^n(x_i-a)-\prod_{1\leq i<j\leq n}(x_j-x_i)\prod_{i=1}^nx_i\Big)\]

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

当 \(a=0\) 时,可用升阶法和 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).\quad\Box\]

时间: 2024-11-06 01:37:53

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

[问题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\) 时,我们有 \

[问题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_

leetcode题目思路以及部分解答(二)

又刷了30题了,这速度还不错.因为还有别的东西要复习,所以进度并不快.感觉还是能学到很多新东西的.早知道这个就不用去其他地方刷了.这个难度不高,还可以知道哪些情况没考虑.比其他OJ那种封闭式的好多了.还是进入正题吧. 1.Rotate Image 这个做过两三次了,但每次还是得重新开始推导..这次又推导了很久..不过好在做过,代码也写得比较简洁. 主要思路就是第一层循环按层次深入.第二层把旋转后对应替代的4个位置循环更新.swap就是用来更新用的.做完发现讨论里的最高票代码就是我这样子= =  

[问题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

c语言:将一个二维数组行和列的元素互换,存到另一个二维数组中。

将一个二维数组行和列的元素互换,存到另一个二维数组中. 解:程序: #include<stdio.h> int main() { int i, j, a[2][3] = { {1,2,3},{4,5,6} },b[3][2]; printf("array a:\n"); for (i = 0; i <=1; i++)//处理a数组中的一行中各元素 { for (j = 0; j <= 2; j++)//处理a数组中的某一列元素 { printf("%5

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

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

bestcoder 1002 列变位法解密(模拟)

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

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

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

稀疏矩阵-压缩存储-列转置法- 一次定位快速转置法

稀疏矩阵的压缩存储 压缩存储值存储极少数的有效数据.使用{row,col,value}三元组存储每一个有效数据,三元组按原矩阵中的位置,以行优先级先后顺序依次存放. 压缩存储:行优先一行一行扫 有效数据存入以为矩阵_arr 列转置法 : 从前向后遍历压缩矩阵,先找列号为0的存入 转置矩阵的压缩矩阵.然后从前向后找列号为1的 ...直到转置矩阵的压缩矩阵大小和 原矩阵的一样大 这时就找完了 时间复杂度为    O(原矩阵列数 * 压缩矩阵长度) 一次定位快速转置法: 设置两个辅助矩阵 RowCou