# =================================== # Recherche d'un carré magique 3x3 par force brute # en utilisant le module itertools # nsi.gecif.net # décembre 2024 # =================================== from itertools import * # --------------------------------------------------------------------- # c est une liste de 9 éléments (chiffres entre 1 et 9) # chaque élément de la liste représente une case du carré magique : # c[0] c[1] c[2] # c[3] c[4] c[5] # c[6] c[7] c[8] # Le carré magique est correctement rempli si # c[0]+c[1]+c[2]==c[3]+c[4]+c[5]==c[6]+c[7]+c[8]==\ # c[0]+c[3]+c[6]==c[1]+c[4]+c[7]==c[2]+c[5]+c[8]==\ # c[0]+c[4]+c[8]==c[2]+c[4]+c[6] # --------------------------------------------------------------------- # test en utilisant la fonction permutations du module itertools : tout_les_cas=list(permutations(range(1,9+1))) print('Test des %d permutations en cours ...' % len(tout_les_cas)) for c in tout_les_cas: if c[0]+c[1]+c[2]==c[3]+c[4]+c[5]==c[6]+c[7]+c[8]==\ c[0]+c[3]+c[6]==c[1]+c[4]+c[7]==c[2]+c[5]+c[8]==\ c[0]+c[4]+c[8]==c[2]+c[4]+c[6]: print("Carré magique trouvé :",c)