En este documento se expondrán los errores que hubo en el proyecto y cómo se resolvieron para un mejor funcionamiento del mismo.
Aún puedes separar más tu código en funciones, como cuando pones " Validar si la matriz clave es invertible", es el mismo código en la función de cifrar y descifrar, pon ese código en una función separada.
while np.linalg.det(clave) == 0:
clave = np.zeros((dimClave, dimClave))
for i in range(dimClave):
for j in range(dimClave):
clave[i][j] = int(input("Ingrese el valor de la posición " + str(i+1) + "," + str(j+1) + ": "))
Se crearon las siguientes funciones:
- Función que comprueba si la matriz es invertible:
def es_invertible(matriz):
return np.linalg.det(matriz) != 0
- Función que permite el llenado de la matriz:
def llenar_matriz(dim):
matriz = np.zeros((dim, dim))
for i in range(dim):
for j in range(dim):
matriz[i][j] = int(input("Ingrese el valor de la posición " + str(i+1) + "," + str(j+1) + ": "))
return matriz
Por lo que el código anterior resultó de la siguiente manera:
while not es_invertible(clave):
print("La matriz clave no es invertible")
clave = llenar_matriz(dimClave)