Rumah > pembangunan bahagian belakang > C++ > Program C++ untuk mencari vektor dan jejak biasa

Program C++ untuk mencari vektor dan jejak biasa

WBOY
Lepaskan: 2023-09-09 16:41:09
ke hadapan
1087 orang telah melayarinya

Program C++ untuk mencari vektor dan jejak biasa

Tatasusunan atau matriks dua dimensi sangat berguna dalam beberapa aplikasi. Matriks mempunyai baris dan lajur dan menyimpan nombor di dalamnya. Dalam C++, kita juga boleh menggunakan tatasusunan berbilang dimensi untuk menentukan matriks dua dimensi. Dalam artikel ini, kita akan melihat cara mengira norma dan surih matriks tertentu menggunakan C++.

Normal ialah punca kuasa dua hasil tambah semua unsur dalam matriks. Surih ialah jumlah unsur yang terdapat dalam pepenjuru utama. Mari kita lihat algoritma dan perwakilan kod C++.

Matriks biasa

$begin{bmatrix} 5 & ​​1 & 8 aksara baris baharu 4 & 3 & 9 aksara baris baharu 2&7&3 tamat{bmatrix},$

Sum of all elements: (5 + 1 + 8 + 4 + 3 + 9 + 2 + 7 + 3) = 42
Normal: (Square root of the sum of all elements) = √42 = 6.48
Salin selepas log masuk

Dalam contoh di atas, kami mengambil matriks 3 x 3, di sini kami mendapat jumlah semua elemen dan kemudian mengambil punca kuasa duanya. Mari kita lihat algoritma untuk pemahaman yang lebih baik.

Algoritma

  • Baca matriks M sebagai input
  • Pertimbangkan M dengan n baris dan n lajur
  • Jumlah: = 0
  • Untuk saya dari 1 hingga n, lakukan
    • Untuk j dari 1 hingga n, lakukan perkara berikut
      • jumlah := jumlah + M[ i ][ j ]
    • Tamatkan gelung
  • Tamatkan gelung
  • res := jumlah punca kuasa dua
  • Kembalikan hasil

Contoh

#include <iostream>
#include <cmath>
#define N 5
using namespace std;
float solve( int M[ N ][ N ] ){
   int sum = 0;
   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},
      {48, 2, 98, 6, 63},
      {85, 12, 10, 6, 9},
      {6, 12, 18, 32, 5},
      {8, 45, 74, 69, 1},
   };
   cout << "Normal of the first matrix is: " << solve( mat1 ) << endl;
   int mat2[ N ][ N ] = {
      {6, 8, 35, 21, 87},
      {99, 2, 36, 326, 25},
      {15, 215, 3, 157, 8},
      {96, 115, 17, 5, 3},
      {56, 4, 78, 5, 10},
   };
   cout << "Normal of the second matrix is: " << solve( mat2 ) << endl;
}
Salin selepas log masuk

Output

Normal of the first matrix is: 28.0357
Normal of the second matrix is: 37.8418
Salin selepas log masuk

Jejak Matriks

$begin{bmatrix} 5 & ​​1 & 8 aksara baris baharu 4 & 3 & 9 aksara baris baharu 2&7&3 tamat{bmatrix},$

Sum of all elements in main diagonal: (5 + 3 + 3) = 11 which is
the trace of given matrix
Salin selepas log masuk

Dalam contoh di atas, kami mengambil matriks 3 x 3 dan di sini kami mendapat jumlah semua elemen pada pepenjuru utama. Jumlah ini ialah surih matriks. Mari kita lihat algoritma untuk pemahaman yang lebih baik.

Algoritma

  • Baca matriks M sebagai input
  • Pertimbangkan M dengan n baris dan n lajur
  • Jumlah: = 0
  • Untuk saya dari 1 hingga n, lakukan
    • jumlah := jumlah + M[ i ][ i ]
  • Tamatkan gelung
  • Kembalikan jumlah

Contoh

#include <iostream>
#include <cmath>
#define N 5
using namespace std;
float solve( int M[ N ][ N ] ){
   int sum = 0;
   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},
      {48, 2, 98, 6, 63},
      {85, 12, 10, 6, 9},
      {6, 12, 18, 32, 5},
      {8, 45, 74, 69, 1},
   };
   cout << "Trace of the first matrix is: " << solve( mat1 ) << endl;
   int mat2[ N ][ N ] = {
      {6, 8, 35, 21, 87},
      {99, 2, 36, 326, 25},
      {15, 215, 3, 157, 8},
      {96, 115, 17, 5, 3},
      {56, 4, 78, 5, 10},
   };
   cout << "Trace of the second matrix is: " << solve( mat2 ) << endl;
}
Salin selepas log masuk

Output

Trace of the first matrix is: 50
Trace of the second matrix is: 26
Salin selepas log masuk

Kesimpulan

Normal dan jejak adalah kedua-dua operasi matriks. Untuk melaksanakan kedua-dua operasi ini, kita memerlukan matriks segi empat sama (kerana matriks surih persegi diperlukan). Normal hanyalah punca kuasa dua hasil tambah semua unsur yang terdapat dalam matriks, dan surih ialah jumlah unsur yang terdapat pada pepenjuru utama matriks. Matriks ini boleh diwakili menggunakan tatasusunan dua dimensi dalam C++. Di sini kami memberikan dua contoh matriks dengan 5 baris dan 5 lajur (25 elemen secara keseluruhan). Mengakses matriks memerlukan pernyataan gelung dengan operasi pengindeksan. Untuk pengiraan biasa kita perlu mengulangi setiap elemen, jadi dua gelung bersarang diperlukan. Kerumitan program ini ialah O(n2). Untuk pengesanan, kerana kita hanya perlu melihat pepenjuru utama, indeks baris dan indeks lajur akan sama. Jadi hanya satu untuk gelung sudah memadai. Boleh dikira dalam masa O(n).

Atas ialah kandungan terperinci Program C++ untuk mencari vektor dan jejak biasa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan