Рубрики

Программа для преобразования данной матрицы в диагональную матрицу

Дана N * N матрица. Задача состоит в том, чтобы преобразовать матрицу в диагональную матрицу . То есть изменить значения недиагональных элементов матрицы на 0.

Диагональная матрица : матрица называется диагональной матрицей, если все недиагональные элементы матрицы равны нулю.

Примеры:

Input : mat[][] = {{ 2, 1, 7 },
                   { 3, 7, 2 },
                   { 5, 4, 9 }}
Output : {{2, 0, 7},
          {0, 7, 0},
          {5, 0, 9}}

Input :  mat[][] = {{1, 3, 5, 6, 7},
                    {3, 5, 3, 2, 1},
                    {1, 2, 3, 4, 5},
                    {7, 9, 2, 1, 6},
                    {9, 1, 5, 3, 2}}
Output : {{1, 0, 0, 0, 7},
          {0, 5, 0, 2, 0},
          {0, 0, 3, 0, 0},
          {0, 9, 0, 1, 0},
          {9, 0, 0, 0, 2}}

Обходите все недиагональные элементы матрицы, используя два вложенных цикла, как показано в приведенном ниже коде, и обнуляйте их.

Ниже приведена программа для обнуления всех недиагональных элементов матрицы:

C ++

// C ++ программа для изменения значения
// недиагональные элементы матрицы до 0

  
#include <iostream>

using namespace std;

  

const int MAX = 100;

  
// Функция для печати результирующей матрицы

void print(int mat[][MAX], int n, int m)

{

    for (int i = 0; i < n; i++) {

        for (int j = 0; j < m; j++) {

            cout << mat[i][j] << " ";

        }

        cout << endl;

    }

}

  
// Функция для изменения значений всех
// недиагональные элементы до 0

void makenondiagonalzero(int mat[][MAX], int n, int m)

{

    // Обход всех недиагональных элементов

    for (int i = 0; i < n; i++) {

        for (int j = 0; j < m; j++) {

            if (i != j && i + j + 1 != n)

  

                // Изменить все недиагональные

                // элементы к нулю

                mat[i][j] = 0;

        }

    }

  

    // выводим результирующую матрицу

    print(mat, n, m);

}

  
// Код драйвера

int main()

{

    int mat[][MAX] = { { 2, 1, 7 },

                       { 3, 7, 2 },

                       { 5, 4, 9 } };

  

    makenondiagonalzero(mat, 3, 3);

  

    return 0;

}

Джава

// Java-программа для изменения значения
// недиагональные элементы матрицы до 0

import java.io.*;

  

class GFG 

{

static int MAX = 100;

  
// Функция для печати результирующей матрицы

static void print(int mat[][], int n, int m)

{

    for (int i = 0; i < n; i++) 

    {

        for (int j = 0; j < m; j++) 

        {

            System.out.print( mat[i][j] + " ");

        }

        System.out.println();

    }

}

  
// Функция для изменения значений всех
// недиагональные элементы до 0

static void makenondiagonalzero(int mat[][],

                                int n, int m)

{

    // Обход всех недиагональных элементов

    for (int i = 0; i < n; i++) 

    {

        for (int j = 0; j < m; j++) 

        {

            if (i != j && i + j + 1 != n)

  

                // Изменить все недиагональные

                // элементы к нулю

                mat[i][j] = 0;

        }

    }

  

    // выводим результирующую матрицу

    print(mat, n, m);

}

  
// Код драйвера

public static void main (String[] args)

{

    int mat[][] = { { 2, 1, 7 },

                    { 3, 7, 2 },

                    { 5, 4, 9 } };

  

    makenondiagonalzero(mat, 3, 3);

}
}

  
// Этот код предоставлен inder_verma

python3

# Python 3 программа для изменения значения
# недиагональных элементов матрицы до 0

  
# Функция для печати результирующей матрицы

def printmatrix(mat, n, m) :

      

    for i in range(n) :

        for j in range(m) :

            print(mat[i][j], end = " ")

          

        print()

  
# Функция для изменения значений
# всех недиагональных элементов в 0

def makenondiagonalzero(mat, n, m) :

      

    # Обходить все недиагональные элементы

    for i in range(n) :

        for j in range(m) :

            if i != j and i + j + 1 != n :

                  

                # Изменить все недиагональные

                # элементов к нулю

                mat[i][j] = 0

      

    # печать результирующей матрицы

    printmatrix(mat, n, m)

      
# Код драйвера

if __name__ == "__main__" :

      

    mat = [ [2, 1, 7],

            [3, 7, 2],

            [5, 4, 9] ]

                      

    makenondiagonalzero(mat, 3, 3)

      
# Этот код предоставлен Ryuga

C #

// C # программа для изменения значения
// недиагональных элементов
// матрица к 0

using System;

  

class GFG 

{

      
// static int MAX = 100;

  
// Функция для печати результата
// матрица

static void print(int [,]mat, 

                  int n, int m)

{

    for (int i = 0; i < n; i++) 

    {

        for (int j = 0; j < m; j++) 

        {

            Console.Write(mat[i, j] + " ");

        }

        Console.WriteLine();

    }

}

  
// Функция для изменения значений всех
// недиагональные элементы до 0

static void makenondiagonalzero(int [,]mat,

                                int n, int m)

{

    // Обход всех недиагональных элементов

    for (int i = 0; i < n; i++) 

    {

        for (int j = 0; j < m; j++) 

        {

            if (i != j && i + j + 1 != n)

  

                // Изменить все недиагональные

                // элементы к нулю

                mat[i, j] = 0;

        }

    }

  

    // выводим результирующую матрицу

    print(mat, n, m);

}

  
// Код драйвера

public static void Main ()

{

    int [,]mat = { { 2, 1, 7 },

                   { 3, 7, 2 },

                   { 5, 4, 9 } };

  

    makenondiagonalzero(mat, 3, 3);

}
}

  
// Этот код предоставлен anuj_67 ..

PHP

<?php
// PHP программа для изменения значения
// недиагональные элементы матрицы до 0

  
// Функция для печати результирующей матрицы

function print1($mat, $n, $m

    for ($i = 0; $i < $n; $i++) 

    

        for ($j = 0; $j < $m; $j++)

        

            echo $mat[$i][$j] . " "

        

        echo "\n";

    

  
// Функция для изменения значений
// все недиагональные элементы в 0

function makenondiagonalzero($mat, $n, $m

    // Обход всех недиагональных элементов

    for ($i = 0; $i < $n; $i++) 

    

        for ($j = 0; $j < $m; $j++)

        

            if ($i != $j && $i + $j + 1 != $n

  

                // Изменить все недиагональные

                // элементы к нулю

                $mat[$i][$j] = 0; 

        

    

  

    // выводим результирующую матрицу

    print1($mat, $n, $m); 

  
// Код драйвера

$mat = array( array( 2, 1, 7 ), 

              array( 3, 7, 2 ), 

              array( 5, 4, 9 ) ); 

  

makenondiagonalzero($mat, 3, 3); 

  
// Этот код добавлен
// Арнаб Кунду
?>

Выход:

2 0 7 
0 7 0 
5 0 9

Временная сложность: O (n * m)

Рекомендуемые посты:

Программа для преобразования данной матрицы в диагональную матрицу

0.00 (0%) 0 votes