矩阵双模乘法得到身份

时间:2014-05-14 22:12:46

标签: matlab matrix matrix-multiplication modulo

我必须乘以矩阵A和B,它们可以由数字0,2,3,4,5,6组成,以获得单位矩阵,但是在每一步之后,模乘都会发生乘法运算。 e.g:

[A1 A2 A3]    and      [B1 B2 B3]
[A4 A5 A6]             [B4 B5 B6]
[A7 A8 A9]             [B7 B8 B9]

((A1*B1)%7+(A2*B4)%7+(A3*B7)%7)%7 = 1 

元素I_11

如何找到两个矩阵A和B?

2 个答案:

答案 0 :(得分:2)

请注意,最后采用模运算就足够了。删除中间模运算不会影响结果。所以条件是mod(A*B,7)应该等于单位矩阵。

现在,由于rem(6^2,7)等于1,因此解决方案是

 A = [ 6     0     0
       0     6     0
       0     0     6 ];

 B = [ 6     0     0
       0     6     0
       0     0     6 ];

检查:

>> rem(A*B,7)
ans =
     1     0     0
     0     1     0
     0     0     1

另一种可能性:因为rem(2*4,7)也是1

 A = [ 2     0     0
       0     2     0
       0     0     2 ];

 B = [ 4     0     0
       0     4     0
       0     0     4 ];

你当然可以合并:

 A = [ 2     0     0
       0     4     0
       0     0     6 ];

 B = [ 4     0     0
       0     2     0
       0     0     6 ];

答案 1 :(得分:2)

获取满足所需条件的AB组合的代码 -

nums = [0,2,3,4,5,6]    

%// allcomb is a MATLAB File-exchange tool available at -
%// http://www.mathworks.in/matlabcentral/fileexchange/10064-allcomb
t1 = allcomb(nums,nums) 

t2 = mod(prod(t1,2),7)==1
out_comb = t1(t2,:)

输出是 -

out_comb =

     2     4
     3     5
     4     2
     5     3
     6     6

这意味着AB的可能组合将是(假设I表示3x3大小的单位矩阵) -

A is 2I, B is 4I and A is 4I, B is 2I %%// 2I would be 2.*I and so on
A is 3I, B is 5I and A is 5I, B is 3I
A is 4I, B is 2I and A is 2I, B is 4I
A is 5I, B is 3I and A is 3I, B is 5I
A is 6I, B is 6I and A is 6I, B is 6I

感谢@Luis提供的指针,请注意您可以按如下方式混合和匹配这些数字,以便有更多AB的组合供您选择 -

A as diag([2 4 6]) and B as [4 2 6])
A as diag([5 3 2]) and B as [3 5 4])