在这个挑战中,您将得到一个方矩阵A
,一个向量v
和一个标量λ
。您将需要确定是否(λ, v)
对应于的本征对A
。即,是否Av = λv
。
点积
两个向量的点积是逐元素相乘的总和。例如,以下两个向量的点积为:
(1, 2, 3) * (4, 5, 6) = 1*4 + 2*5 + 3*6 = 32
注意,点积仅定义在两个相同长度的向量之间。
矩阵向量乘法
矩阵是2D值网格。的m
X n
矩阵具有m
行和n
列。我们可以将m
x n
矩阵想象成长度m
向量n
(如果我们取行)。
在m
x n
矩阵和大小n
向量之间定义矩阵向量乘法。如果我们将m
x n
矩阵与大小n
向量相乘,我们将获得大小m
向量。i
结果向量中的-th值是i
矩阵的第-行与原始向量的点积。
例
1 2 3 4 5
Let A = 3 4 5 6 7
5 6 7 8 9
1
3
Let v = 5
7
9
如果将矩阵和向量相乘,将Av = x
得到以下结果:
x 1 = A T 1 * v /* AT1 means the first row of A; A1 would be the first column */
=(1,2,3,4,5)*(1,3,5,7,9)= 1 * 1 + 2 * 3 + 3 * 5 + 4 * 7 + 5 * 9 = 1 + 6 + 15 + 28 + 45 = 95
x 2 = A T 2 * v =(3,4,5,6,7)*(1,3,5,7,9)= 3 * 1 + 4 * 3 + 5 * 5 + 6 * 7 + 7 * 9 = 3 + 12 + 25 + 42 + 63 = 145
x 3 = A T 3 * v =(5,6,7,8,9)*(1,3,5,7,9)= 5 * 1 + 6 * 3 + 7 * 5 + 8 * 7 + 9 * 9 = 5 + 18 + 35 + 56 + 81 = 195
因此,我们得到了Av = x = (95, 145, 195)
。
标量乘法
标量(单个数)与向量的乘法只是元素逐个乘法。例如,3 * (1, 2, 3) = (3, 6, 9)
。这很简单。
特征值和特征向量
鉴于矩阵A
,我们说λ
是对应于特征值v
和v
对应于一个特征向量λ
当且仅当 Av = λv
。(这里Av
是矩阵矢量乘法,λv
是标量乘法)。
(λ, v)
是一个本征对。
挑战规格
输入项
输入将包含一个矩阵,一个向量和一个标量。这些可以以任何合理格式的任何顺序进行。
输出量
输出将是真实/虚假值;当且仅当标量和向量是具有指定矩阵的本征对时,才为真。
规则
- 适用标准漏洞
- 如果您的语言中存在用于验证本征对的内置函数,则可能无法使用它。
- 您可以假设所有数字都是整数
测试用例
MATRIX VECTOR EIGENVALUE
2 -3 -1 3
1 -2 -1 1 1 -> TRUE
1 -3 0 0
2 -3 -1 1
1 -2 -1 1 -2 -> TRUE
1 -3 0 1
1 6 3 1
0 -2 0 0 4 -> TRUE
3 6 1 1
1 0 -1 2
-1 1 1 1 7 -> FALSE
1 0 0 0
-4 3 1
2 1 2 2 -> TRUE
2 1 2 -> TRUE
稍后再添加4x4。