Advertisement
Josif_tepe

Untitled

Apr 11th, 2024
769
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.86 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <queue>
  4. using namespace std;
  5. typedef long long ll;
  6. typedef vector<vector<int>> matrix;
  7. const int maxn = 1e5 + 10;
  8. const int INF = 2e9;
  9.  
  10. matrix multiply_by_k(matrix A, int k) {
  11.     matrix res = A;
  12.     int n = (int) A.size(), m = (int) A[0].size();
  13.    
  14.     for(int i = 0; i < n; i++) {
  15.         for(int j = 0; j < m; j++) {
  16.             res[i][j] *= k;
  17.         }
  18.     }
  19.     return res;
  20. }
  21. matrix add_two_matrices(matrix A, matrix B) {
  22.     int n_a = (int) A.size(), m_a = (int) A[0].size();
  23.     int n_b = (int) B.size(), m_b = (int) B[0].size();
  24.    
  25.     if(n_a == n_b and m_a == m_b) {
  26.         matrix res = A;
  27.         for(int i = 0; i < n_a; i++) {
  28.             for(int j = 0; j < m_a; j++) {
  29.                 res[i][j] = A[i][j] + B[i][j];
  30.             }
  31.         }
  32.         return res;
  33.     }
  34.     cout << "Dimenziite na matricite treba da se isti za da mozhe da gi sobereme istite" << endl;
  35.     return {{0}};
  36. }
  37. matrix subtract_two_matrices(matrix A, matrix B) {
  38.     int n_a = (int) A.size(), m_a = (int) A[0].size();
  39.     int n_b = (int) B.size(), m_b = (int) B[0].size();
  40.    
  41.     if(n_a != n_b or m_a != m_b) {
  42.         cout << "Dimenziite na matricite treba da se isti za da mozhe da gi sobereme istite" << endl;
  43.         return {{0}};
  44.     }
  45.     matrix res = A;
  46.     for(int i = 0; i < n_a; i++) {
  47.         for(int j = 0; j < m_a; j++) {
  48.             res[i][j] = A[i][j] - B[i][j];
  49.         }
  50.     }
  51.     return res;
  52. }
  53. matrix multiply_two_matrices(matrix A, matrix B) {
  54.     int n_a = (int) A.size(), m_a = (int) A[0].size();
  55.     int n_b = (int) B.size(), m_b = (int) B[0].size();
  56.    
  57.     if(m_a != n_b) {
  58.         cout << "Matricite ne mozhat da se mnozhat" << endl;
  59.         return {{0}};
  60.     }
  61.     matrix res(n_a, vector<int>(m_b, 0));
  62.     for(int i = 0; i < n_a; i++) {
  63.         for(int j = 0; j < m_b; j++) {
  64.             int c = 0;
  65.             for(int k = 0; k < n_a; k++) {
  66.                 c += A[i][k] * B[k][j];
  67.             }
  68.             res[i][j] = c;
  69.         }
  70.     }
  71.    
  72.     return res;
  73. }
  74. void print(matrix A) {
  75.     int n = (int) A.size(), m = (int) A[0].size();
  76.     for(int i = 0; i < n; i++) {
  77.         for(int j = 0; j < m; j++) {
  78.             cout << A[i][j] << " ";
  79.         }
  80.         cout << endl;
  81.     }
  82.     cout << endl;
  83. }
  84. int main() {
  85.     matrix A = {
  86.         {1, 2},
  87.         {3, 4}
  88.        
  89.     };
  90.     matrix B = {
  91.         {1, 2, 3},
  92.         {4, 5, 6},
  93.        
  94.     };
  95.    
  96.     matrix multiplied_by_k = multiply_by_k(A, 2);
  97.     print(multiplied_by_k);
  98.    
  99.     matrix add_two_matrix = add_two_matrices(A, B);
  100.     print(add_two_matrix);
  101.    
  102.    
  103.     matrix subtrac_two_matrix = subtract_two_matrices(A, B);
  104.     print(subtrac_two_matrix);
  105.    
  106.     matrix multiplication_two_matrices = multiply_two_matrices(A, B);
  107.     print(multiplication_two_matrices);
  108.     return 0;
  109. }
  110.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement