Problemas com Quadrado Mágico 3x3

258 views
Skip to first unread message

Julcem 100

unread,
Jul 30, 2021, 11:17:24 PM7/30/21
to Python Brasil
Peguei o seguinte exercício na internet:
  1. Quadrado mágico. Um quadrado mágico é aquele dividido em linhas e colunas, com um número em cada posição e no qual a soma das linhas, colunas e diagonais é a mesma. Por exemplo, veja um quadrado mágico de lado 3, com números de 1 a 9:

    • Elabore uma função que identifica e mostra na tela todos os quadrados mágicos com as características acima. Dica: produza todas as combinações possíveis e verifique a soma quando completar cada quadrado. Usar um vetor de 1 a 9 parece ser mais simples que usar uma matriz 3x3.
E fiz o seguinte código, lembrando que sou bem iniciante
import random

for i in range(531441):
x = random.sample(range(9),9)
if (x[0]+x[1]+x[2]==x[3]+x[4]+x[5] and x[3]+x[4]+x[5]==x[6]+x[7]+x[8] and x[0]+x[3]+x[6]==x[1]+x[4]+x[7] and x[1]+x[4]+x[7]==x[2]+x[5]+x[8] and x[0]+x[4]+x[8]==x[2]+x[4]+x[6]):
print("\t",x[0],"\t",x[1],"\t",x[2])
print("\t",x[3],"\t",x[4],"\t",x[5])
print("\t",x[6],"\t",x[7],"\t",x[8])
print("\n\n")

E a função até funciona, mas repete muitas vezes o mesmo quadrado e não me garante que todas as combinações possíveis foram mostradas. Alguém sabe alguma forma de modificar a minha função para não repetir ou já tem uma função pronta de quadrado mágico para me enviar?
Reply all
Reply to author
Forward
0 new messages