Matlab – DM
Devoir d’informatique
Suite de Syracuse — Carrés magiques 2/3
2 Carré magique
2.1 Définition et premières propriétés
Définition. Pour un entier n>1, un carré magique d’ordre nest une matrice carrée d’ordre ndont
les coefficients sont tous les entiers de 1 à n2de sorte que les sommes des nombres sur chaque ligne, sur
chaque colonne ainsi que sur les deux diagonales principales soient égales à un même nombre sn. Cette
somme snest appelée constante magique d’un carré magique d’ordre n.
Q 2.a) Combien existe-t-il de carrés magiques d’ordre 1 ? Et d’ordre 2 ?
Dans la suite, on admettra 2qu’il existe un carré magique d’ordre npour tout n>3. Ceci
implique en particulier que la constante snexiste pour n>3.
Q 2.b) Soit n∈N∗− {2}. Calculez la constante magique snen fonction de n.
2.2 Carrés magiques de taille impaire : méthode siamoise
Cette méthode de construction a été introduite en France par Simon de La Loubère à la fin
du XVIIesiècle alors qu’il revenait de son ambassade au Siam (ancien nom de la Thaïlande).
Soit nun entier impair supérieur à 3 : n= 2p+ 1 avec p>1.
Notre but est de construire les coefficients d’une matrice Ad’ordre nde sorte qu’une fois
tous les coefficients construits, cette matrice forme un carré magique.
Dans cette partie, les indices dans la matrice sont considérés modulo n : le coefficient (n+1,1)
est en fait le coefficient (1,1), le coefficient (3, n + 1) est en fait le coefficient (3,1), etc. Ceci
revient à imaginer que la première et la dernière ligne sont adjacentes, ainsi que la première et
la dernière colonne : la matrice est vue comme enroulée sur un tore 3.
Voici un algorithme informel décrivant la méthode siamoise :
– Initialisation : placer 1au milieu de la première ligne
– Étape itérée : si kest placé en (i, j),
∗si (i+ 1, j + 1) est vide, placer k+ 1 dans cette case
∗sinon, placer k+ 1 en (i, j −1)
Q 2.c) Déroulez l’algorithme à la main (sur du papier) pour construire un carré mag-
ique d’ordre 3, puis un carré magique d’ordre 5.
Q 2.d) Modifiez (toujours sur du papier) l’algorithme ci-dessus pour qu’il soit plus
formel. Entre autres :
– précisez les entrées et les sorties de l’algorithme,
– utilisez une boucle (for ou while) pour décrire plus précisément l’itération,
– utilisez des affectations A(i,j) = k pour formaliser l’opération « placer ken (i, j)».
Q 2.e) Transcrivez cet algorithme en une fonction Matlab methode_siamoise, puis
vérifiez sur des petites valeurs de nque vous obtenez bien un carré magique.
Ainsi, vous savez construire facilement un carré magique d’ordre npour tout nimpair. Les
méthodes de construction des carrés magiques d’ordre pair sont plus difficiles. Une méthode
générale pour construire des carrés magiques d’ordre n>3, aussi bien pair que impair, a été
2. Des méthodes de construction existent pour obtenir des carrés magiques pour tout n>3. Par ailleurs, le
nombre de carrés magique d’ordre naugmente très vite avec n: on estime qu’il y a environ 1019 carrés magiques
d’ordre 6, sans compter ceux que l’on obtient à partir d’un autre grâce à des rotations et des réflexions.
3. Un tore est une figure géométrique que vous pourrez observer sur sa page wikipedia.