設M,N爲整數,使得0 < = M,N < N.算法矩陣加法和乘法
定義:
Algorithm A: Computes m + n in time O(A(N))
Algorithm B: Computes m*n in time O(B(N))
Algorithm C: Computes m mod n in time O(C(N))
使用算法A的任意組合,B和C描述NXN矩陣加法和矩陣乘法的算法與Z/NZ中的條目。同時指出算法的運行時間big-O符號。
嘗試在溶液:
對於NXN除了在Z/NZ: 令A和B是在Z/NZ NXN矩陣的條目A_ {IJ}和B_ {IJ},使得I,J在{0,1,...,N}其中,i表示行,j表示矩陣中的列。此外,讓在A + B = C
Step 1. Run Algorithm A to get a_{ij} + b_{ij} = c_{ij} in time O(A(N))
Step 2. Run Algorithm C to get c_{ij} mod N in time O(C(N))
重複步驟1和2對所有的i,J {0,1,...,N}。
這意味着我們必須重複1,2 N^2次的步驟。因此,總的運行時間由
N^2[ O(A(N)) + O(C(N)) ] = O(N^2 A(N)) + O(N^2 C(N)) = O(|N^2 A(N)| + |(N^2 C(N)|).
對於乘法算法我只由乙算法替換步驟1,得到了總運行時間爲O(|N^2 B(N)| + |(N^2 C(N)|)
就像上述估計。
請告訴我,如果我正確地處理這個問題,尤其是與大O符號。
謝謝。
對於矩陣乘法你的算法是錯誤的。 'A * B_ {i,j}!= A_ {i,j} * B_ {i,j}',事實證明,不能比'O(n^2logn)'更好的矩陣。 – amit 2015-02-24 08:42:17