Program C++ untuk mengira jumlah pepenjuru matriks

PHPz
Lepaskan: 2023-09-07 20:01:02
ke hadapan
1216 orang telah melayarinya

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
Salin selepas log masuk

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 );
}
Salin selepas log masuk

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
Salin selepas log masuk

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!

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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!