Certaines applications peuvent grandement bénéficier de l'utilisation de tableaux ou de matrices bidimensionnelles. Les nombres sont stockés dans les lignes et les colonnes de la matrice. En utilisant des tableaux multidimensionnels, nous Les matrices 2D peuvent également être définies en C++. Dans cet article, nous allons apprendre à utiliser le C++ Déterminez la normale et la trace de la matrice donnée.
La racine carrée du nombre total d'éléments dans une matrice est ce qu'on appelle Ordinaire. La trace est constituée de toutes les composantes qui composent la diagonale principale. laissez-nous Affichez la représentation de l'algorithme dans le code C++.
$commencer{bmatrix} 8, 5 et 3 caractères de nouvelle ligne 6 & 7 & 1 nouvelle ligne 2, 4 et 9 caractères de nouvelle ligne fin{bmatrix},$
La somme de tous les éléments sur la diagonale principale : (8 + 7 + 9) = 24, qui est la trace de la matrice donnée
Dans l'exemple précédent, une matrice 3 x 3 a été utilisée et le résultat est la somme des matrices Le nombre d'éléments dans la diagonale principale. La trace de la matrice se retrouve dans la somme. laissez-nous Cela aide à comprendre si l’on regarde l’algorithme.
#include <iostream> #include <cmath> #define N 7 using namespace std; float solve( int M[ N ][ N ] ){ int sum = 0; // read elements through major diagonal, where row index and column index are same, both are i for ( int i = 0; i < N; i++ ) { sum = sum + M[ i ][ i ]; } return sum; } int main(){ int mat1[ N ][ N ] = { {5, 8, 74, 21, 69, 78, 25}, {48, 2, 98, 6, 63, 52, 3}, {85, 12, 10, 6, 9, 47, 21}, {6, 12, 18, 32, 5, 10, 32}, {8, 45, 74, 69, 1, 14, 56}, {7, 69, 17, 25, 89, 23, 47}, {98, 23, 15, 20, 63, 21, 56}, }; cout << "The Trace of the first matrix is: " << solve( mat1 ) << endl; int mat2[ N ][ N ] = { {6, 8, 35, 21, 87, 8, 26}, {99, 2, 36, 326, 25, 24, 56}, {15, 215, 3, 157, 8, 41, 23}, {96, 115, 17, 5, 3, 10, 18}, {56, 4, 78, 5, 10, 22, 58}, {85, 41, 29, 65, 47, 36, 78}, {12, 23, 87, 45, 69, 96, 12} }; cout << "The Trace of the second matrix is: " << solve( mat2 ) << endl; }
The Trace of the first matrix is: 129 The Trace of the second matrix is: 74
$commencer{bmatrix} 8, 5 et 3 caractères de nouvelle ligne 6 & 7 & 1 nouvelle ligne 2, 4 et 9 caractères de nouvelle ligne fin{bmatrix},$
Somme de tous les éléments : (8 + 5 + 3 + 6 + 7 + 1 + 2 + 4 + 9) = 45
Normal : (racine carrée de la somme de tous les éléments) = √45 = 6,708
Dans l'exemple précédent, une matrice 3 x 3 a été utilisée. On calcule d'abord la somme de toutes ses entrées avant de trouver sa racine carrée. Regardons l'algorithme pour nous aider à comprendre.
#include <iostream> #include <cmath> #define N 7 using namespace std; float solve( int M[ N ][ N ] ){ int sum = 0; // go through each element. Using outer loop, access ith row, using inner loop access column. For cell (i, j) read the element and add it to the sum for ( int i = 0; i < N; i++ ) { for ( int j = 0; j < N; j++ ) { sum = sum + M[ i ][ j ]; } } return sqrt( sum ); } int main(){ int mat1[ N ][ N ] = { {5, 8, 74, 21, 69, 78, 25}, {48, 2, 98, 6, 63, 52, 3}, {85, 12, 10, 6, 9, 47, 21}, {6, 12, 18, 32, 5, 10, 32}, {8, 45, 74, 69, 1, 14, 56}, {7, 69, 17, 25, 89, 23, 47}, {98, 23, 15, 20, 63, 21, 56}, }; cout << "The Normal of the first matrix is: " << solve( mat1 ) << endl; int mat2[ N ][ N ] = { {6, 8, 35, 21, 87, 8, 26}, {99, 2, 36, 326, 25, 24, 56}, {15, 215, 3, 157, 8, 41, 23}, {96, 115, 17, 5, 3, 10, 18}, {56, 4, 78, 5, 10, 22, 58}, {85, 41, 29, 65, 47, 36, 78}, {12, 23, 87, 45, 69, 96, 12} }; cout << "The Normal of the second matrix is: " << solve( mat2 ) << endl; }
The Normal of the first matrix is: 41.1947 The Normal of the second matrix is: 49.4267
Les opérations normales et de trace appartiennent aux matrices. Ces deux processus nécessitent Matrice carrée, c'est ce dont nous avons besoin (car nous avons besoin du carré trace). La somme des traces est Les éléments contenus dans la diagonale principale de la matrice, alors que la normale est juste La racine carrée du nombre total d'éléments contenus dans la matrice. En C++, une matrice peut Afficher à l’aide d’un tableau bidimensionnel. Ici nous avons choisi deux matrices de 5 lignes et 5 colonnes Exemple (25 éléments au total). La matrice doit être accessible via une instruction de boucle et manipulation d'index. Deux boucles imbriquées sont nécessaires car pour effectuer l'opération typique Lors du calcul, nous devons parcourir chaque élément. La complexité de ce programme est O(n2). Puisque le suivi ne nécessite que la diagonale principale, les index de lignes et de colonnes seront Même. Par conséquent, seule une boucle for est nécessaire. Déterminé en un temps O(n).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!