我必須乘以矩陣A和B,它可以由數字0,2,3,4,5,6
組成,以獲得單位矩陣,但是每一步之後的乘積都會與模數發生。例如: -矩陣雙模乘法得到標識
[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?
我必須乘以矩陣A和B,它可以由數字0,2,3,4,5,6
組成,以獲得單位矩陣,但是每一步之後的乘積都會與模數發生。例如: -矩陣雙模乘法得到標識
[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?
代碼以獲得將滿足所要求的條件的A
和B
可能的組合 -
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
這意味着A
和B
可能的組合(假設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,請注意,你可以混合和匹配這些數字如下擁有的A
和B
更多的組合選擇 -
A as diag([2 4 6]) and B as [4 2 6])
A as diag([5 3 2]) and B as [3 5 4])
注意你也可以在不同的條目中混合這些數字:例如A = diag([2 4 6])和B = diag([4 2 6])。 A和B不必是身份的倍數。 +1雖然爲'allcomb'的想法 –
@LuisMendo謝謝!添加了你的作品! :) – Divakar
請注意,最後進行模運算就足夠了。去除中間模操作不會影響結果。所以條件是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 ];
我認爲我們開始以A '和'B'作爲給定的輸入。 – Divakar
@Divakar你不知道你必須獲得標識矩陣,而A和B是未知的 –