Materia
Ejercicios


anterior | siguiente

Cuadrado mágico

Un cuadrado mágico es una disposición de números naturales en una tabla cuadrada, de modo que las sumas de cada columna, de cada fila y de cada diagonal son iguales.

Los cuadrados mágicos más populares son aquellos que tienen los números consecutivos desde el 1 hasta \(n^2\), donde \(n\) es el número de filas y de columnas del cuadrado.

Por ejemplo, el siguiente es un cuadrado mágico con \(n = 4\). Todas sus filas, columnas y diagonales suman 34:

ejercicios/3/../../diagramas/cuadrado-magico.png
  1. Escriba una función que reciba un arreglo cuadrado de enteros de \(n\times n\), e indique si está conformado por los números consecutivos desde 1 hasta \(n^2\):

    >>> from numpy import array
    >>> consecutivos(array([[3, 1, 5],
    ...                     [4, 7, 2],
    ...                     [9, 8, 6]]))
    True
    >>> consecutivos(array([[3, 1, 4],
    ...                     [4, 0, 2],
    ...                     [9, 9, 6]]))
    False
    
  2. Escriba una función que reciba un arreglo e indique si se trata o no de un cuadrado mágico:

    >>> es_magico(array([[3, 1, 5],
    ...                  [4, 7, 2],
    ...                  [9, 8, 6]]))
    False
    >>> es_magico(array([[2, 7, 6],
    ...                  [9, 5, 1],
    ...                  [4, 3, 8]]))
    True