Екі матрицаны қосу  


Күрделілік дәрежесі оңай
Жиі кіреді Алация Asana тілек
Array Matrix Мектептегі бағдарламалау

Проблемалық мәлімдеме  

«Екі матрицаны қосу» есебінде біз екі матрицаны а және b түрінде келтірдік. Біз финалды табуымыз керек Матрица а матрицасына b матрицасын қосқаннан кейін. Егер матрицалар үшін рет бірдей болса, оларды тек біз қосамыз, әйтпесе жасай алмаймыз. Егер біз оларды қоса алмасақ, онда «Біз бұл матрицаларды қоса алмаймыз» деп басып шығарыңыз.

Кіріс форматы  

R1, c1, r2, c2 төрт бүтін мәні бар бірінші жол. Мұндағы r1 және c1 бірінші матрицаның жолдары мен бағандарының санын білдіреді. Ал r2, c2 екінші матрицаның жолдарының, бағандарының санын білдіреді.

Келесі r1 жолында c1 бүтін мәндері бар.

Келесі r2 жолында с2 бүтін мәндері бар.

Шығу форматы  

Соңғы матрицаны әр жол жаңа жолдан басталатындай етіп, әр элемент әр жолда бос орынмен бөлінетін етіп шығарыңыз.

Шектеу  

  • 1 <= r1, c1, r2, c2 <= 5000.
  • 1 <= | m [i] [j] | <= 10 ^ 9, мұндағы m - матрица және ith жол мен j бағандағы элементтің орны.

мысал  

2 2 2 2
4 8
3 7
1 0
5 2
5 8
8 9

Түсіндіру: Матрицалардың қосылуын А және В матрицаларына сәйкес жазбаларды қосу арқылы таба аламыз.

Екі матрицаны қосу

Екі матрицаны қосу

Екі матрицаны қосу

Екі матрицаны қосу

Екі матрицаны қосу алгоритмі  

1. Екі матрицадағы әр жол үшін.

Сондай-ақ, қараңыз
LRU кэшін енгізу

1.1 В матрицасындағы сәйкес элементтерді А матрицасындағы элементтермен қосыңыз.

1.2 Кейбір қосалқы матрицаларда нәтижені бірдей күйде сақтаңыз.

2. Келесі жолға өтіп, матрицалардың соңына дейін 1.1 және 1.2 қадамдарын орындаңыз.

3. Көмекші матрицаны басып шығарыңыз.

Іске асыру  

Екі матрица қосуға арналған C ++ бағдарламасы

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int r1,c1,r2,c2;
    cin>>r1>>c1>>r2>>c2;
    int a[r1][c1];
    int b[r2][c2];
    for(int i=0;i<r1;i++)
    {
        for(int j=0;j<c1;j++)
        {
            cin>>a[i][j];
        }
    }
    for(int i=0;i<r2;i++)
    {
        for(int j=0;j<c2;j++)
        {
            cin>>b[i][j];
        }
    }
    if(c1!=c2 || r1!=r2)
    {
        cout<<"We can’t add these matrices";
    }
    else
    {
    int c[r1][c2];
    for(int i=0;i<r1;i++)
    {
        for(int j=0;j<c2;j++)
        {
            c[i][j]=a[i][j]+b[i][j];
            cout<<c[i][j]<<"  ";
        }
        cout<<endl;
    }
    }
    return 0;
}

Екі матрица қосуға арналған Java бағдарламасы

import java.io.*; 
import java.util.Scanner;
class TutorialCup
{ 
    // Driver code 
    public static void main(String[] args) 
    { 
        int r1,c1,r2,c2;
        Scanner inp = new Scanner(System.in);
        r1 = inp.nextInt();
        c1 = inp.nextInt();
        r2 = inp.nextInt();
        c2 = inp.nextInt();
        int a[][] = new int[r1][c1];
        for(int i=0;i<r1;i++)
        {
            for(int j=0;j<c1;j++)
            {
                a[i][j]=inp.nextInt();
            }
        }
        int b[][] = new int[r2][c2];
        for(int i=0;i<r2;i++)
        {
            for(int j=0;j<c2;j++)
            {
                b[i][j]=inp.nextInt();
            }
        }
        if(r1!=r2 && c1!=c2) 
        { 
            System.out.println("\nWe can’t add these matrices."); 
        } 
        else
        {
            int c[][] = new int[r1][c1];
            for(int i=0;i<r1;i++)
            {
                for(int j=0;j<c1;j++)
                {
                    c[i][j]=a[i][j]+b[i][j];
                    System.out.print(c[i][j] + " ");
                }
                System.out.println();
            }
        }
    } 
}
2 2 2 2
2 8 
0 9 
5 6 
11 3
7 14
11 12

Екі матрица қосу үшін кешенділікті талдау  

Уақыттың күрделілігі

O (n ^ 2) Мұндағы n - максимум r1 және с1. Мұнда біз жай екі циклды r1 рет, ал екінші циклды c1 рет орындаймыз.

Ғарыштың күрделілігі

O (m ^ 2) мұндағы m - максимум r1 және с1. Мұнда біз берілген матрицаларды қосу нәтижесін сақтау үшін қосымша орын жасаймыз. Мұнда біз бірінші матрицаны қабылдау үшін r1 * c1 өлшемін, ал екінші матрицаны қабылдау үшін r2 * c2 өлшемін жарияладық.

Сондай-ақ, қараңыз
Құрамында Көшірме бар

анықтамалық