Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program C++ untuk mengira jumlah pepenjuru matriks

Program C++ untuk mengira jumlah pepenjuru matriks

PHPz
PHPzke hadapan
2023-09-07 20:01:021183semak imbas

Program C++ untuk mengira jumlah pepenjuru matriks

Penggunaan tatasusunan atau matriks 2 dimensi amat berfaedah untuk beberapa aplikasi. Baris dan lajur matriks digunakan untuk memegang nombor Kita boleh mentakrifkan 2D Tatasusunan berbilang dimensi digunakan untuk mewakili matriks dalam C++. Dalam artikel ini kita akan melihat bagaimana untuk melaksanakan gunakan C++ untuk mengira hasil tambah pepenjuru bagi matriks segi empat sama.

Matriks mempunyai dua pepenjuru, pepenjuru utama dan pepenjuru sekunder (kadangkala dirujuk sebagai pepenjuru major dan minor). sudut (indeks [0, 0]) ke sudut kanan bawah (indeks [n-1, n-1]) dengan n ialah susunan Matriks segi empat sama. Diagonal utama bermula dari sudut kanan atas (indeks [n-1, 0]) dan berakhir di sudut kiri bawah sudut (indeks [0, n-1] Mari kita lihat algoritma untuk mencari jumlah elemen bersama-sama dengan dua pepenjuru ini.

Terjemahan bahasa Cina bagi

Jumlah Diagonal Matriks

ialah:

Jumlah pepenjuru matriks

$$mulakan{bmatrix} 8&5&3baris baharu 6 & 7& 1baris baharu 2 & 4 & 9 tamat{bmatrix},$$

Sum of all elements in major diagonal: (8 + 7 + 9) = 24
Sum of all elements in minor diagonal: (3 + 7 + 2) = 12

Dalam contoh sebelumnya, satu matriks 3 x 3 telah digunakan secara individu dan dikira jumlahnya Mari kita lihat algoritma dan pelaksanaan untuk jelas pandangan.

Algoritma

  • Baca matriks M sebagai input
  • Pertimbangkan M dengan n baris dan n lajur
  • sum_major := 0
  • sum_minor := 0
  • Untuk julat i dari 0 hingga n-1, laksanakan
    • untuk julat j dari 0 hingga n - 1, lakukan
      • jika i dan j adalah sama, maka
        • sum_major := sum_major + M[ i ][ j ]
      • tamat jika
      • jika (i + j) sama dengan (N - 1), maka
        • sum_minor := sum_minor + M[ i ][ j ]
      • tamat jika
    • tamat untuk
  • tamat untuk
  • jumlah pulangan

Contoh

#include <iostream>
#include <cmath>
#define N 7
using namespace std;
float solve( int M[ N ][ N ] ){
   int sum_major = 0;
   int sum_minor = 0;
   for ( int i = 0; i < N; i++ ) {
      for ( int j = 0; j < N; j++ ) {
         if( i == j ) {
            sum_major = sum_major + M[ i ][ j ];
         }
         if( (i + j) == N - 1) {
            sum_minor = sum_minor + M[ i ][ j ];
         }
      }
   }
   cout << "The sum of major diagonal: " << sum_major << endl;
   cout << "The sum of minor diagonal: " << sum_minor << endl;
}
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 << "For the first matrix: " << endl;
   solve( mat1 );
   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 << "\nFor the second matrix: " << endl;
   solve( mat2 );
}

Output

For the first matrix: 
The sum of major diagonal: 129
The sum of minor diagonal: 359

For the second matrix: 
The sum of major diagonal: 74
The sum of minor diagonal: 194

Kesimpulan

Dalam artikel ini, kita telah melihat cara mengira jumlah pepenjuru bagi matriks segi empat sama tertentu. Diagonal utama berjalan dari sudut kiri atas ke sudut kanan bawah, manakala pepenjuru kedua berjalan dari sudut kiri bawah ke sudut kanan atas. Garis pepenjuru bermula dari sudut kanan atas ke sudut kiri bawah. Untuk mencari jumlah ini elemen pepenjuru, kita gelung melalui semua elemen Apabila kedua-dua baris dan nilai indeks lajur Sama, ia mewakili unsur pepenjuru utama apabila jumlah kedua-dua indeks adalah Sama seperti susunan n-1 matriks, ia akan ditambah kepada subpepenjuru prosedur mengambil dua gelung bersarang dan kami melintasi semua elemen yang terdapat dalam Tatasusunan 2D. Oleh itu, mengira jumlah dua pepenjuru akan mengambil masa O(n2) matriks yang diberikan.

Atas ialah kandungan terperinci Program C++ untuk mengira jumlah pepenjuru matriks. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam