De la visualisation à l’expérimentation
Dans un article précédent, nous avons présenté les carrés magiques concentriques et leur construction par couronnes successives.
L’idée centrale est simple : un carré magique concentrique, aussi appelé carré magique à enceintes, ne se contente pas d’être magique dans sa totalité. Il contient aussi des sous-carrés centraux qui restent magiques lorsque l’on retire les bordures extérieures.
Pour un carré d’ordre 7, on observe ainsi :
7×7 magique
└── 5×5 central magique
└── 3×3 central magique
Cet article franchit une étape supplémentaire. Il ne s’agit plus seulement de montrer un exemple ou une visualisation, mais de documenter un petit chantier expérimental :
générer → valider → compter → documenter
L’objectif est de construire une base fiable pour Mystimath, avec des scripts Python publics, des règles de validation explicites et des résultats reproductibles.
Définition retenue dans ce chantier
Le mot “concentrique” peut être utilisé avec plusieurs nuances selon les sources historiques ou les méthodes de construction. Pour éviter toute ambiguïté, Mystimath utilise ici une définition volontairement stricte.
Dans ce chantier, un carré magique concentrique d’ordre impair n est un carré magique normal qui vérifie les conditions suivantes :
- il contient exactement les entiers de
1àn²; - chaque entier est utilisé une seule fois ;
- le centre vaut
(n² + 1) / 2; - le carré complet est magique ;
- chaque sous-carré central impair est magique ;
- chaque sous-carré central utilise l’intervalle centré attendu.
Par exemple, pour un carré global d’ordre 7, le centre vaut :
25
Les sous-carrés centraux doivent alors utiliser les intervalles suivants :
| Sous-carré | Valeurs attendues | Constante magique |
|---|---|---|
| 3×3 | 21 à 29 | 75 |
| 5×5 | 13 à 37 | 125 |
| 7×7 | 1 à 49 | 175 |
Cette définition ne prétend pas couvrir toutes les formes historiques possibles des carrés à enceintes. Elle définit une famille computationnelle précise, que l’on peut générer, tester et compter.
Le pivot central
Pour un carré magique normal impair d’ordre n, le centre naturel est :
centre = (n² + 1) / 2
Si un sous-carré central d’ordre impair k est lui-même magique et centré sur ce pivot, sa constante est :
M_k = k × centre
Exemple pour l’ordre 9 :
centre = 41
3×3 : 3 × 41 = 123
5×5 : 5 × 41 = 205
7×7 : 7 × 41 = 287
9×9 : 9 × 41 = 369
Cette loi simple est très utile : elle donne immédiatement les constantes attendues pour chaque couche.
Générer des carrés concentriques
Le premier script public du dépôt est :
generate_concentric_odd_square.py
Il construit des carrés magiques concentriques d’ordre impair par ajout de bordures successives.
Le principe est le suivant :
1×1 → 3×3 → 5×5 → 7×7 → 9×9 → ...
À chaque étape, le carré déjà construit est conservé au centre, puis une nouvelle couronne est ajoutée autour de lui.
La nouvelle couronne utilise des paires complémentaires. Pour un carré d’ordre n, deux nombres sont complémentaires si leur somme vaut :
n² + 1
Par exemple, pour l’ordre 7 :
1 + 49 = 50
2 + 48 = 50
3 + 47 = 50
...
24 + 26 = 50
Ces paires permettent d’équilibrer les bords opposés et de préserver la magie du carré complet.
Exemple de génération
Depuis la racine du dépôt GitHub, on peut générer un carré concentrique d’ordre 9 avec :
python generate_concentric_odd_square.py --order 9
Pour afficher la grille dans la console :
python generate_concentric_odd_square.py --order 9 --print
Pour tester plusieurs ordres :
python generate_concentric_odd_square.py --orders 7 9 11 13 15
La sortie sans option --print donne seulement les validations, sans afficher les grilles complètes. C’est utile pour publier des résumés sans dévoiler la base éditoriale du site.
Validation automatique
La génération seule ne suffit pas. Chaque carré doit être vérifié.
Le script contrôle notamment :
valeurs normales : 1 à n²
absence de doublons
centre correct
sous-carré 3×3 magique
sous-carré 5×5 magique
...
carré complet magique
Pour un carré d’ordre 9, la validation attendue ressemble à ceci :
Valeurs normales validées : 1 à 81.
Centre correct : 41.
Sous-carré 3x3 validé, constante 123, valeurs 37..45.
Sous-carré 5x5 validé, constante 205, valeurs 29..53.
Sous-carré 7x7 validé, constante 287, valeurs 17..65.
Sous-carré 9x9 validé, constante 369, valeurs 1..81.
Cette étape est importante pour la fiabilité du site. Une grille peut être visuellement séduisante tout en contenant un doublon, une valeur manquante ou un sous-carré central non magique.
Mystimath privilégie donc une démarche vérifiable : une structure ne doit pas seulement être affichée, elle doit aussi passer un test.
Base éditoriale et dépôt public
Le dépôt GitHub public associé à ce chantier est disponible ici :
https://github.com/mystimath/concentric-magic-squares
Il contient les scripts, les notes de définition et les résultats publics. En revanche, les fichiers JSON éditoriaux utilisés par le site Mystimath ne sont pas publiés.
Ce choix est volontaire.
Il n’y a pas d’intérêt scientifique à publier toute la base éditoriale interne du site. Le dépôt public documente ce qui doit être reproductible :
la méthode
les scripts
les règles de validation
les résultats expérimentaux
les limites
La sélection éditoriale, les enrichissements de métadonnées, les variantes choisies pour les articles et les visualisations restent dans le workflow interne de Mystimath.
Compter une famille stricte
Le deuxième script public est :
count_concentric_odd_squares.py
Il ne génère pas les grilles une par une. Il compte le nombre de possibilités dans la famille stricte définie par le script.
Cette précision est essentielle : on ne prétend pas compter tous les carrés à enceintes possibles au sens historique le plus large. On compte une famille moderne bien définie :
ordres impairs
valeurs normales 1..n²
intervalles centrés
paires complémentaires
couronnes successives
Cette famille est assez stricte pour être calculable, mais déjà suffisamment riche pour montrer une explosion combinatoire spectaculaire.
Résultats pour les ordres 5 et 7
Le comptage commence par les ordres 5 et 7.
Pour l’ordre 5, le script obtient :
| Couche | Nombre de possibilités |
|---|---|
| 3×3 | 8 |
| 5×5 | 2 880 |
Le total brut est donc :
23 040
En identifiant les carrés qui ne diffèrent que par rotation ou réflexion, on obtient :
2 880
Pour l’ordre 7, le script obtient :
| Couche | Nombre de possibilités |
|---|---|
| 3×3 | 8 |
| 5×5 | 2 880 |
| 7×7 | 21 312 000 |
Le total brut devient :
491 028 480 000
Et le total à rotations et réflexions près est :
61 378 560 000
Le passage de l’ordre 5 à l’ordre 7 suffit donc à montrer la violence de la croissance combinatoire.
Pourquoi ne pas générer tous les carrés d’ordre 7 ?
En théorie, on pourrait imaginer générer tous les carrés concentriques d’ordre 7 de cette famille.
En pratique, le total brut est :
491 028 480 000
Cela représente plus de 491 milliards de grilles.
Même si chaque grille était très compacte, les écrire, les stocker et les relire n’aurait pas beaucoup de sens pour Mystimath. Le comptage est ici plus intéressant que l’énumération brute.
La bonne approche est donc :
générer quelques exemples validés
compter la famille
publier les scripts
documenter les limites
Cette méthode donne un résultat exploitable sans transformer le projet en stockage massif de grilles.
Rotations et réflexions
Un carré magique peut être tourné ou réfléchi. Dans beaucoup de comptages, on ne veut pas compter séparément deux carrés qui ne diffèrent que par une rotation ou un miroir.
Pour un carré normal non trivial contenant des valeurs toutes distinctes, les huit transformations du groupe diédral donnent généralement huit grilles distinctes :
original
rotation 90°
rotation 180°
rotation 270°
réflexion horizontale
réflexion verticale
réflexion diagonale principale
réflexion diagonale secondaire
C’est pourquoi le comptage réduit est obtenu en divisant le total brut par 8.
Ce point rejoint l’article sur le nombre de carrés magiques normaux d’ordre n, où la question du comptage à rotations et réflexions près joue déjà un rôle central.
Résultats publics sans divulguer les grilles
Le dépôt public peut contenir des fichiers de résultats comme :
results/count-orders-5-7.txt
results/validation-summary-orders-7-15.txt
Le premier donne les résultats de comptage.
Le second donne les validations des ordres générés, sans afficher les grilles si la commande est lancée sans --print.
Exemple :
python generate_concentric_odd_square.py --orders 7 9 11 13 15 > results/validation-summary-orders-7-15.txt
Et pour le comptage :
python count_concentric_odd_squares.py --orders 5 7 > results/count-orders-5-7.txt
Cette séparation est saine : elle permet de publier la reproductibilité sans publier toute la base éditoriale.
Ce que ce chantier apporte à Mystimath
Ce chantier apporte plusieurs briques solides.
D’abord, il donne une méthode expérimentale claire pour produire des carrés concentriques vérifiés.
Ensuite, il ajoute une couche de fiabilité : les carrés ne sont pas seulement présentés comme des curiosités, ils sont testés.
Enfin, il ouvre une piste de recherche expérimentale : compter des familles de carrés magiques, en commençant par des définitions suffisamment strictes pour être calculables.
Mystimath peut ainsi articuler trois dimensions :
visualisation
construction
expérimentation reproductible
C’est exactement ce qui distingue une simple galerie de carrés magiques d’un projet documentaire plus solide.
Limites et prudence
Les résultats de comptage présentés ici doivent être lus avec précision.
Ils ne signifient pas :
nombre total de tous les carrés magiques concentriques possibles
Ils signifient plutôt :
nombre de carrés dans une famille stricte définie par le script
Cette nuance est importante.
Les carrés magiques à enceintes ont une histoire ancienne et plusieurs méthodes de construction. La famille utilisée ici est une formalisation moderne, adaptée à une génération et à une validation algorithmique.
Le dépôt GitHub documente donc une démarche expérimentale, non une classification historique exhaustive.
À explorer ensuite
Cette page fait partie d’un ensemble plus large consacré aux carrés magiques dans Mystimath.
Pour comprendre la logique des couches, commencer par l’article :
Pour replacer ce chantier dans les méthodes classiques :
Pour voir une animation liée aux carrés magiques :
Pour comprendre la question générale du dénombrement :
Et pour manipuler les visualisations interactives :
Conclusion
Les carrés magiques concentriques sont un terrain idéal pour Mystimath.
Ils sont visuels, historiques, combinatoires et programmables. Ils permettent de passer naturellement d’une grille que l’on observe à une structure que l’on génère, puis à une famille que l’on compte.
Le chantier présenté ici reste volontairement modeste : une définition stricte, des scripts Python, des validations automatiques et les premiers résultats de comptage pour les ordres 5 et 7.
Le champ est vaste et des carrés concentriques esthétiques non publiés s’y trouvent sûrement. Si vous arrivez à en dénicher quelques uns n’hésitez pas à nous faire part de vos trouvailles.