Skip to content

Instantly share code, notes, and snippets.

@DiracSpace
Created March 19, 2021 02:30
Show Gist options
  • Save DiracSpace/a23e991f76b694471e010c2044183eee to your computer and use it in GitHub Desktop.
Save DiracSpace/a23e991f76b694471e010c2044183eee to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
# definimos una matriz estática
# de 3 * 3
A = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
B = [
[10, 11, 12],
[13, 14, 15],
[16, 17, 18]
]
C = [
[19, 20, 21],
[22, 23, 24],
[25, 26, 27]
]
D = [
[9, 10, 11, 12],
[13, 14, 15, 16],
[17, 18, 19, 20]
]
def sumar_dos_matrices(matrix_a: list[list], matrix_b: list[list]):
# definimos una matrix resultado
matrix_r = [
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]
]
for i in range(len(matrix_a)):
for j in range(len(matrix_b)):
#print (f'sumando {matrix_a[i][j]}, {matrix_b[i][j]}')
matrix_r[i][j] = matrix_a[i][j] + matrix_b[i][j]
#print ('')
print ("imprimiendo resultados")
for resultado in matrix_r:
print (resultado)
print ('')
def resta_dos_matrices_una(matrix_a: list[list], matrix_b: list[list]):
# definimos una matrix resultado
matrix_r = [
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]
]
for i in range(len(matrix_a)):
for j in range(len(matrix_b)):
#print (f'restando {matrix_a[i][j]}, {matrix_b[i][j]}')
matrix_r[i][j] = matrix_a[i][j] - matrix_b[i][j]
#print ('')
print ("imprimiendo resultados")
for resultado in matrix_r:
print (resultado)
print ('')
def resta_dos_matrices_dos(matrix_a: list[list], matrix_b: list[list]):
return [[i - j for i, j in zip(*m)] for m in zip(matrix_a, matrix_b)]
def resta_dos_matrices_una(matrix_a: list[list], matrix_b: list[list]):
# definimos una matrix resultado
matrix_r = [
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]
]
for i in range(len(matrix_a)):
for j in range(len(matrix_b)):
#print (f'restando {matrix_a[i][j]}, {matrix_b[i][j]}')
matrix_r[i][j] = matrix_a[i][j] - matrix_b[i][j]
#print ('')
print ("imprimiendo resultados")
for resultado in matrix_r:
print (resultado)
print ('')
def multiplicacion_dos_matrices_una(matrix_c: list[list], matrix_d: list[list]):
# definimos una matrix resultado
matrix_r = [
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]
]
for i in range(len(matrix_c)):
for j in range(len(matrix_d[0])):
for k in range(len(matrix_d)):
matrix_r[i][j] += matrix_c[i][k] * matrix_d[k][j]
#print ('')
print ("imprimiendo resultados")
for resultado in matrix_r:
print (resultado)
print ('')
def multiplicacion_dos_matrices_dos(matrix_c: list[list], matrix_d: list[list]):
return [
[sum(m * n for m, n in zip(i, j)) for j in zip(*matrix_d)] for i in matrix_c
]
def multiplicacion_scalar_uno(matrix_a: list[list], veces: int) -> list[list]:
# definimos una matrix resultado
matrix_r = [
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]
]
for i, fila in enumerate(matrix_a):
for j, valor in enumerate(fila):
matrix_r[i][j] = valor * veces
print (matrix_r)
print ('')
def multiplicacion_scalar_dos(matrix_a: list[list], veces: int) -> list[list]:
return [[valor * veces for valor in fila] for fila in matrix_a]
print (" solución a suma de dos matrices")
sumar_dos_matrices(A, B)
print (" solución 1 a resta de dos matrices")
resta_dos_matrices_una(A, B)
print (" solución 2 a resta de dos matrices")
print (resta_dos_matrices_dos(A, B))
print ('')
print (" solución 1 a multiplicación de dos matrices")
multiplicacion_dos_matrices_una(C, D)
print (" solución 2 a multiplicación de dos matrices")
print (multiplicacion_dos_matrices_dos(C, D))
print ('')
print (" solución 1 a multiplicación escalar")
multiplicacion_scalar_uno(B, 3)
print (" solución 2 a multiplicación escalar")
print (multiplicacion_scalar_dos(B, 3))
print ('')
@JMA-Dv
Copy link

JMA-Dv commented Mar 20, 2021

Dice C bro

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment