Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Procesos E
#include <iostream> #include <vector> using namespace std; class Matrix { public: void matrixSize(int a, int b); int getColumn(); int getRow(); void showMatrix(); void fillMatrix(); vector<vector<double>> matrix; private: int column; int row; }; void Matrix::matrixSize(int b, int a) { column=a; row=b; matrix.resize(row); for(int i = 0; i < matrix.size(); i++) { matrix[i].resize(column); } } int Matrix::getColumn() { return column; } int Matrix::getRow() { return row; } void Matrix::showMatrix() { for(auto i:matrix) { for(auto j: i) { printf("%2.3lf ", j); }cout << "\n"; } } void Matrix::fillMatrix() { double in; for(int i = 0; i < row; i++) { for(int j = 0; j < column; j++) { cin >> in; matrix[i][j] = in; } } } Matrix multMatrix(Matrix ma, Matrix mb) { Matrix mr; double suma; int ra = ma.getRow(); int ca = ma.getColumn(); int rb = mb.getRow(); int cb = mb.getColumn(); mr.matrixSize(ra, cb); for(int a = 0; a < ra; a++) { for(int b = 0; b < cb; b++) { suma = 0; for(int i = 0; i < ca; i++) { suma += ma.matrix[a][i]*mb.matrix[i][b]; } mr.matrix[a][b] = suma; } } return mr; } Matrix potMatrix(Matrix a, int pot) { Matrix matrixG; matrixG = a; for(int i = 0; i < pot-1; i++) { matrixG = multMatrix(matrixG, a); } return matrixG; } Matrix genMatrixPi(int n, int tam) { Matrix pi; pi.matrixSize(1,tam); for(int i = 0; i < tam; i++) { if(i != n) pi.matrix[0][i] = 0; else pi.matrix[0][i] = 1; } return pi; } void start(Matrix matrixT, int inicio, int final, int periodos) { Matrix matrixPi, matrixRes; //Si ya se que sobra una asignación pero asi lo tengo más ordenado matrixPi = genMatrixPi(inicio, matrixT.getColumn()); matrixRes = matrixPi; for(int i = 0; i < periodos-1; i++) { matrixRes = multMatrix(matrixRes, matrixT); cout << endl; matrixRes.showMatrix(); } cout << "\nResultado: " << matrixRes.matrix[0][final] << "\n"; } int main() { Matrix matrixT, matrixR, matrixV; int tam, inicio, final, periodos; cin >> tam; tam++; matrixT.matrixSize(tam, tam); matrixT.fillMatrix(); matrixT.showMatrix(); cin >> inicio; cin >> final; cin >> periodos; start(matrixT, inicio, final, periodos); /*matrixV.matrixSize(1,6); matrixV.fillMatrix(); cout << "C: " << matrixV.getColumn() << " R: " << matrixV.getRow() << "\n"; matrixV.showMatrix(); matrixR = potMatrix(matrixT, 2); matrixR = multMatrix(matrixV, matrixT); cout<<"Resultados: \n"; matrixR.showMatrix();*/ return 0; }
run
|
edit
|
history
|
help
0
Prosta implementacja algorytmu Euklidesa (NWD)
cast
sample
Beadandó
Shared lock
ignat2
Zscore
Breakfast
remove dublicates from string using recursion
Maximum product subarray