Un
curieux a écrit :> On part d'une grille de 3×3 (genre un pavé numérique), toutes les cases sont initialement blanches
> sauf la case en haut à gauche qui est noire (le 7, quoi).
>
> À chaque tour, on peut choisir une ligne, une colonne ou une diagonale et on inverse la couleur
> de toutes les cases dessus.
>
> Est-il possible d'atteindre une situation où seul le 8 est noir ? Où seul le 9 est noir ?
Premièrement, chaque opération est son propre symétrique (de manière triviale)
Deuxièmement, les opérations sont commutatives (Si je change la première colonne puis la première ligne, c'est égal à si je change la première ligne puis la première colonne). Ca pourra être prouvé en utilisant le modèle mathématique utilisé plus tard.
Par conséquent on ne "peut pas" effectuer la même opération deux fois (ce serait équivalent à ne pas l'effectuer du tout), même si on la sépare par d'autres opérations. Il est évident que la répéter 3 fois sera équivalent à ne la faire qu'une fois, la répéter 4 fois à ne pas la faire etc...
Il y a 8 opérations (3 colonnes, 3 lignes et 2 diagonales), il y a par conséquent au maximum 2^8 états qu'on peut obtenir à partir de l'état initial. (au maximum, parce que potentiellement des états peuvent se répéter)
Le plateau a 2^9 états.
Il est donc impossible d'obtenir tous les états du plateau à partir de n'importe quel état de base.
Mais est-ce que l'état initial permet d'obtenir l'un des deux états finaux que l'on souhaite?
Il serait trivial d'implémenter un programme qui effectue les 256 opérations possibles et d'épuiser les possibilités. Mais on est pas là pour ça.
Utilisons un modèle mathématique.
On peut modéliser le plateau par une matrice 3x3 où chaque case vaut 0 si elle est blanche et 1 si elle est noire.
Chacune des 8 opérations peut être modélisée par une autre matrice qu'on ajoute à la première. Il conviendra d'appliquer un modulo 2 pour ramener le résultat de l'addition à un résultat binaire.
Notez que ce modèle mathématique nous fournit immédiatement la commutativité des opérations (par commutativité de l'addition). Ainsi que l'associativité.
La matrice que l'on ajoute à la matrice initiale peut être exprimée de la sorte :
C1 + L1 + D1 C2 + L1 C3 + L1 + D2
C1 + L2, C2 + L2 + D2 + D1 C3 + L2
C1 + L3 + D2 C2 + L3, C3+ L3 + D1
Il suffit donc de résoudre un système d'équations :
C1 + L1 + D1 = 1 (Rappelons que la 7° case doit changer d'état)
C2 + L1 = 1 (et la 8° aussi)
C3 + L1 + D2 = 0
C1 + L2 = 0
C2 + L2 + D2 + D1 = 0
C3 + L2 = 0
C1 + L3 + D2 = 0
C2 + L3 = 0
C3 + L3 + D1 = 0
Pour simplifier l'écriture j'omets l'égalité à modulo 2, mais elle est bien présente partout.
A + B congru à 0 modulo 2 est équivalent A est congru à B modulo 2 (trivialement). (*)
Notre système devient donc:
C1 + L1 + D1 = 1
C2 + L1 = 1
C3 + L1 + D2 = 0
C1 = L2C2 + L2 + D2 + D1 = 0
C3 = L2C1 + L3 + D2 = 0
C2 = L3C3 + L3 + D1 = 0
en remplaçant tous les C par des L:
C1 = L2
C2 = L3
C3 = L2
L2 + L1 + D1 = 1L3 + L1 = 1 L2 + L1 + D2 = 0L3 + L2 + D2 + D1 = 0L2 + L3 + D2 = 0L2 + L3 + D1 = 0En ajoutant la ligne 4 et la ligne 6, on obtient:
D2 = 0
L2 + L1 + D1 = 1
L3 + L1 = 1
L2 + L1 = 0L2 + L3 = 0L2 + L3 + D1 = 0
En ajoutant 1 et 3, on obtient:
D1 = 1
L3 + L1 = 1
L2 + L1 = 0
L2 + L3 = 0
L2 + L3 + 1 = 0
La ligne 3 et la ligne 4 provoquent une contradiction (1=0).
Par conséquent il est impossible à partir de l'état initial d'obtenir uniquement la 8° case noircie.
La même méthode s'applique pour la 9° case. (Mais je n'ai pas calculé le résultat).
Note: On ne m'a jamais accusé de subtilité pour trouver des solutions.
![[:D]](http://img.kraland.org/s/05.gif)