Escolar Documentos
Profissional Documentos
Cultura Documentos
Quadrados Mágicos
1 O problema
O objetivo é gerar um Quadrado Mágico 4×4 para qualquer número escolhido
pelo usuário e em seguida mostrar diversas variações deste mesmo quadrado.
2 Quadrados Mágicos
Os quadrados mágicos são matrizes onde a soma dos elementos de cada linha,
de cada coluna, e das diagonais é sempre o mesmo. Em alguns casos, como
veremos, esta propriedade se estende a outros subconjuntos de células. Eles
são muito antigos e a determinação de sua origem é bastante controversa.
Uma das lendas fala de uma época em 2000 AC, mas a publicação desta
estória é de 1200 DC, outra fonte cita 220 AC, como a referência mais antiga..
Na lenda, uma tartaruga apareceu nas margens do Rio Lo com uma figura
desenhada nas costas. O desenho formava um quadrado mágico de ordem 3,
veja a figura 1.
Se contarmos o número de bolinhas em cada desenho, teremos a matriz
equivalente:
8 1 6
3 5 7
4 9 2
1
Figura 1: Quadrado Mágico na tartaruga
3 Quadrados 4 × 4
Os quadrados que nos interessam são justamente os de tamanho ×4, pois
além de terem todas as propriedades curiosas, apesar de serem simples, estão
mais ligados a simetrias do que os outros tipos1 .
Vejamos mais um exemplo, para um número especial:
11 8 21 2
22 1 12 7
4 23 6 9
5 10 3 24
1
Existem simetrias interessantes em alguns quadrados de ordem maior, mas estes já
são divertidos o suficiente.
2
Figura 2: Melencolia I, de Albrecht Dürer
3
Figura 3: Quadrado mágico de Melencolia em destaque
4
Além da soma constante em linhas, colunas e diagonais, o mesmo total é
encontrado se somarmos os seguintes conjuntos de 4 células:
• Os quatro valores do canto superior esquerdo (11, 8, 22 e 1)
• Os quatro valores do canto superior direito (21, 2, 12 e 7)
• Os quatro valores do canto inferior esquerdo
• Os quatro valores do canto inferior direito
• Os 4 valores centrais (1, 12, 23 e 6)
• Os 4 cantos (11, 2, 5 e 24)
• Os 2 números do meio superior (8 e 21) e os do meio inferior (10 e 3)
• Idem para os meios da coluna esquerda e direita
• Os elementos das segundas diagonais menores de cada diagonal:
– (21, 7, 4 e 10)
– (22, 8, 3 e 9)
• Os cantos da matriz 3 × 3 superior esquerda (11, 21, 4 e 6)
• O mesmo para as outras matrizes 3 × 3:
– (8, 2, 23 e 9)
– (22, 12, 5 e 3)
– (1, 7, 10 e 24)
Por este conjunto enorme de simetrias, é fácil perceber que existem várias
transformações que podemos fazer na matriz, mas que mantém estas propri-
dades2 .
Vejamos algumas, não é difı́cil demonstrá-las, são consequência da asso-
ciatividade e comutatividade da adição:
• Rotações da matriz.
• Transposições (refletir pelas diagonais)
• Reflexão horizontal e vertical.
2
Toda simetria está ligada a um invariante. Esta é uma caracterı́stica fantástica para
a identificação (ou construção) das leis da Fı́sica. Procure ler sobre o Teorema de Noether
5
4 Construção do quadrado
Construir um quadrado mágico com estas propriedades é extremamente fácil,
embora pareça uma tarefa hercúlea. Se quisermos a matriz que tenha o
número N como invariante, basta calcular m = N −21 e preencher o esqueleto
abaixo:
11 8 m 2
m+1 1 12 7
4 m+2 6 9
5 10 3 m+3
5 O programa
Seu programa deverá perguntar o valor da invariante N que o usuário deseja
para o quadrado mágico. Não há restrições sobre este valor, mas suporemos
que seja um inteiro positivo não maior que 100.
Como resultado, o programa imprime o quadrado “padrão” que acabamos
de ver. Ademais, conforme opção a ser solicitada pelo usuário, o programa
gerará e imprimirá variantes obtidas através das transformações de simetria
descritas a seguir. Para isso, usaremos algumas funções auxiliares. Para
a geração do primeiro quadrado, basta calcular m e alterar uma matriz já
pronta. Depois, é só imprimir.
6
Com estas funções, gere e imprima cada transformação. Depois de ge-
rar a primeira matriz, você deve apresentar um menu de opções para cada
transformação, por exemplo:
Escolha a operaç~
ao desejada:
0 - Sair
1 - Girar para direira
2 - Transpor pela diagonal principal
3 - Transpor pela diagonal secundária
4 - Refletir horizontalmente
5 - Refletir verticalmente
6 Bônus
Criar as seguintes transformações adicionais:
7 Sobre a entrega
Sobre a entrega:
7
• Deverá ser entregue um arquivo nomeado EP2-<número USP>.
#################################################
# MAC 115 - Introduç~
ao à Computaç~
ao
#
# IF-USP - Segundo Semestre de 2017
#
# <turma> - <nome do professor>
#
# <nome do(a) aluno(a)>
# <número USP>
#################################################
8 Exemplo de execução
A seguir, temos um exemplo de execução:
Entre com a soma invariante da matriz: 34
11 8 13 2
14 1 12 7
4 15 6 9
5 10 3 16
Escolha a operaç~
ao desejada:
0 - Sair
8
1 - Girar para direira
2 - Transpor pela diagonal principal
3 - Transpor pela diagonal secundária
4 - Refletir horizontalmente
5 - Refletir verticalmente
1
5 4 14 11
10 15 1 8
3 6 12 13
16 9 7 2
Escolha a operaç~
ao desejada:
0 - Sair
1 - Girar para direira
2 - Transpor pela diagonal principal
3 - Transpor pela diagonal secundária
4 - Refletir horizontalmente
5 - Refletir verticalmente
2
5 10 3 16
4 15 6 9
14 1 12 7
11 8 13 2
Escolha a operaç~
ao desejada:
0 - Sair
1 - Girar para direira
2 - Transpor pela diagonal principal
3 - Transpor pela diagonal secundária
4 - Refletir horizontalmente
5 - Refletir verticalmente
3
2 7 9 16
13 12 6 3
8 1 15 10
11 14 4 5
9
Escolha a operaç~
ao desejada:
0 - Sair
1 - Girar para direira
2 - Transpor pela diagonal principal
3 - Transpor pela diagonal secundária
4 - Refletir horizontalmente
5 - Refletir verticalmente
4
11 14 4 5
8 1 15 10
13 12 6 3
2 7 9 16
Escolha a operaç~
ao desejada:
0 - Sair
1 - Girar para direira
2 - Transpor pela diagonal principal
3 - Transpor pela diagonal secundária
4 - Refletir horizontalmente
5 - Refletir verticalmente
5
5 4 14 11
10 15 1 8
3 6 12 13
16 9 7 2
Escolha a operaç~
ao desejada:
0 - Sair
1 - Girar para direira
2 - Transpor pela diagonal principal
3 - Transpor pela diagonal secundária
4 - Refletir horizontalmente
5 - Refletir verticalmente
0
Tchau!
10