Crie a função multiplica_matriz(mat1, mat2) que deve retornar o produto de duas matrizes bidimensionais genéricas, sem alterar as matrizes originais. A função deve imprimir uma mensagem de erro e retornar um vetor vazio ([]) caso não for possível realizar o produto das duas matrizes.

Passo 1

Beleza, vamos resolver esse exercício juntos! A gente precisa criar uma função chamada multiplica_matriz(mat1, mat2) que vai multiplicar duas matrizes bidimensionais. Isso faz parte do conteúdo de álgebra linear e programação, especificamente trabalhando com listas em Python. Para fazer essa multiplicação, vamos precisar verificar se o número de colunas da primeira matriz é igual ao número de linhas da segunda matriz. Se não for, não dá pra multiplicar e a gente precisa tratar esse caso.

Passo 2

Primeiro, vamos relembrar como funciona a multiplicação de matrizes. Para multiplicar duas matrizes, a quantidade de colunas da primeira matriz (mat1) tem que ser igual à quantidade de linhas da segunda matriz (mat2). Se mat1 for uma matriz de tamanho m x n e mat2 for de tamanho n x p, o resultado será uma matriz de tamanho m x p. Cada elemento da matriz resultante é calculado como a soma dos produtos dos elementos correspondentes das linhas de mat1 e das colunas de mat2.

Passo 3

Agora, na nossa função, vamos começar verificando se é possível multiplicar as duas matrizes. Precisamos saber o número de linhas e colunas de cada uma. Em Python, podemos usar len(mat1) para obter o número de linhas de mat1 e len(mat1[0]) para as colunas. Fazemos a mesma coisa para mat2. Se o número de colunas de mat1 não for igual ao número de linhas de mat2, vamos imprimir uma mensagem de erro e retornar uma lista vazia [].

Passo 4

Se as matrizes puderem ser multiplicadas, vamos criar uma matriz resultado preenchida com zeros. O tamanho dessa matriz será o número de linhas de mat1 por o número de colunas de mat2. Para preencher essa matriz, vamos usar dois loops: um para percorrer as linhas de mat1 e outro para percorrer as colunas de mat2. Dentro desses loops, vamos calcular cada elemento multiplicando e somando os elementos correspondentes.

Passo 5

Por fim, depois de preencher toda a matriz resultado, vamos retorná-la. Assim, garantimos que as matrizes originais não são alteradas e que o produto é corretamente calculado.

Resposta

def multiplica_matriz(mat1, mat2):
    # Verifica se as matrizes podem ser multiplicadas
    linhas_mat1 = len(mat1)
    colunas_mat1 = len(mat1[0]) if mat1 else 0
    linhas_mat2 = len(mat2)
    colunas_mat2 = len(mat2[0]) if mat2 else 0

    if colunas_mat1 != linhas_mat2:
        print("Erro: Não é possível multiplicar as matrizes devido às dimensões incompatíveis.")
        return []

    # Inicializa a matriz resultado com zeros
    resultado = [[0 for _ in range(colunas_mat2)] for _ in range(linhas_mat1)]

    # Realiza a multiplicação
    for i in range(linhas_mat1):
        for j in range(colunas_mat2):
            for k in range(colunas_mat1):
                resultado[i][j] += mat1[i][k] * mat2[k][j]

    return resultado

Exercícios relacionados