Advertisement
Guest User

Untitled

a guest
Jun 3rd, 2021
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.97 KB | None | 0 0
  1. #include<iostream>
  2. #include<fstream>
  3. #include<cmath>
  4.  
  5. using namespace std;
  6.  
  7. int main() {
  8.     //net
  9.     const int netX = 4;
  10.     const int netY = 3;
  11.     float matrix1a[netX * netY * 4];
  12.     int matrix1ja[netX * netY * 4];
  13.     int matrix1ia[netX * netY + 1];
  14.     for (int i = 0; i <= netX * netY; ++i) {
  15.         matrix1ia[i] = 0;
  16.     }
  17.     for (int i = 0; i < netX * netY; ++i) {
  18.         if (i >= netX) {
  19.             for (int j = netX * netY + 1; j > i; --j) {
  20.                 matrix1ia[j] += 1;
  21.             }
  22.             matrix1a[matrix1ia[i + 1] - 1] = 1;
  23.             matrix1ja[matrix1ia[i + 1] - 1] = i - netX;
  24.         }
  25.         if ((i % netX) != 0) {
  26.             for (int j = netX * netY + 1; j > i; --j) {
  27.                 matrix1ia[j] += 1;
  28.             }
  29.             matrix1a[matrix1ia[i + 1] - 1] = 1;
  30.             matrix1ja[matrix1ia[i + 1] - 1] = i - 1;
  31.         }
  32.         for (int j = netX * netY + 1; j > i; --j) {
  33.             matrix1ia[j] += 1;
  34.         }
  35.         matrix1a[matrix1ia[i + 1] - 1] = 1;
  36.         matrix1ja[matrix1ia[i + 1] - 1] = i;
  37.         if ((i % netX) != netX - 1) {
  38.             for (int j = netX * netY + 1; j > i; --j) {
  39.                 matrix1ia[j] += 1;
  40.             }
  41.             matrix1a[matrix1ia[i + 1] - 1] = 1;
  42.             matrix1ja[matrix1ia[i + 1] - 1] = i + 1;
  43.         }
  44.     }
  45.     /*    for (int i = 0; i < matrix1ia[netX*netY]; ++i){
  46.             cout << matrix1a[i] << " ";
  47.         }
  48.         cout << endl;
  49.         for (int i = 0; i < matrix1ia[netX*netY]; ++i){
  50.             cout << matrix1ja[i] << " ";
  51.         }
  52.         cout << endl;
  53.         for (auto s: matrix1ia){
  54.             cout << s << " ";
  55.         }
  56.         cout << endl;
  57.     */    int b[netX * netY];
  58.     int result[netX * netY];
  59.     for (int i = 0; i < netX * netY; ++i) {
  60.         b[i] = 1;
  61.         result[i] = 0;
  62.     }
  63.     for (int row = 0; row < netX * netY; ++row) {
  64.         for (int i = matrix1ia[row]; i < matrix1ia[row + 1]; ++i) {
  65.             result[row] += matrix1a[i] * b[matrix1ja[i]];
  66.         }
  67.     }
  68.     for (auto s : result) {
  69.         cout << s << " ";
  70.     }
  71.     cout << endl;
  72.     ifstream in("testR.txt");
  73.     int size;
  74.     in >> size;
  75.     int matrix2ia[size + 1];
  76.     for (int i = 0; i <= size; ++i) {
  77.         in >> matrix2ia[i];
  78.     }
  79.     int* matrix2ja = new int[matrix2ia[size]];
  80.     for (int i = 0; i < matrix2ia[size]; ++i) {
  81.         in >> matrix2ja[i];
  82.     }
  83.     float* matrix2a = new float[matrix2ia[size]];
  84.     for (int i = 0; i < matrix2ia[size]; ++i) {
  85.         in >> matrix2a[i];
  86.     }
  87.     int b2[size];
  88.     float result2[size];
  89.     for (int i = 0; i < size; ++i) {
  90.         b2[i] = 1;
  91.         result2[i] = 0;
  92.     }
  93.     for (int row = 0; row < size; ++row) {
  94.         for (int i = matrix2ia[row]; i < matrix2ia[row + 1]; ++i) {
  95.             result2[row] += matrix2a[i] * b2[matrix2ja[i]];
  96.         }
  97.     }
  98.     float norm = 0;
  99.     for (auto s : result2) {
  100.         norm += s * s;
  101.     }
  102.     norm = sqrt(norm);
  103.     cout << norm;
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement