diff --git a/R4.01_R4.A.10/miniprojet/p0/README.md b/R4.01_R4.A.10/miniprojet/p0/README.md index 43d4257..cc0eef2 100644 --- a/R4.01_R4.A.10/miniprojet/p0/README.md +++ b/R4.01_R4.A.10/miniprojet/p0/README.md @@ -1,18 +1,29 @@ # Miniprojet optionnel +## Qu'est-ce qu'on gagne ? -on reprend le jeu de l'exercice 1 du tp2 qui consiste à éteindre toutes les lumières d'une grille. Le but est d'ajouter un mode -qui permet de tricher en indiquant au joueur les lumières qu'il doit allumer/ éteindre. Pour cela, on va utiliser des résultats "élémentaires" d'algèbre linéaire vus -au S1. +Des points bonus sur la note finale de la ressource. Les 5 premiers à m'envoyer +un mail, avec un code fonctionnel et correct gagnent respectivement 6,5,4,3,2 +points. Il faut le faire avant vendredi (07/02/2024). + +## Qu'est-ce qu'il faut faire ? + +On reprend le jeu de l'exercice 1 du tp2 qui consiste à éteindre toutes les +lumières d'une grille. Le but est d'ajouter un mode qui permet de tricher en +indiquant au joueur les lumières qu'il doit allumer/ éteindre. Pour cela, on va +utiliser des résultats "élémentaires" d'algèbre linéaire vus au S1. <div align="center"> <img src="./img/lights.png"> </div> -L'idée principale est que l'action d'allumer/éteindre une lumière (et ses voisins) peut se représenter par une addition modulo 2. -À chaque fois qu'on allume/éteint une lumière, on ajoute la matrice des voisins à la matrice qui représente l'état de la grille. -Pour savoir comment jouer, il suffit d'essayer de décomposer la matrice initiale en somme de matrices de voisins. Ce problème est un problème -classique d'algébre linéaire. Voici un exemple sur une petite instance du jeu. +L'idée principale est que l'action d'allumer/éteindre une lumière (et ses +voisins) peut se représenter par une addition modulo 2. À chaque fois qu'on +allume/éteint une lumière, on ajoute la matrice des voisins à la matrice qui +représente l'état de la grille. Pour savoir comment jouer, il suffit d'essayer +de décomposer la matrice initiale en somme de matrices de voisins. Ce problème +est un problème classique d'algébre linéaire. Voici un exemple sur une petite +instance du jeu. <div align="center"> <img src="./img/lights1.png"> @@ -37,11 +48,13 @@ Le problème se ramène à chercher quel(s) vecteurs \(v_i\) utilisés pour reco Cela s'écrit (\(x_i \{0,1\} \)) : + \[ x_0.v_0 + x_1.v_1 + x_2.v_2 + x_3.v_3 = b \] Et en rangeant les vecteurs \(v\) dans une matrice \(A\), + \[ A = \left(\begin{array}{cccc} 1 & 1 & 1 & 0\\ @@ -52,15 +65,19 @@ Et en rangeant les vecteurs \(v\) dans une matrice \(A\), \] Le problème se ramène à la résolution de + \[ A.x = b \] -Ça tombe bien, vous connaissez (cf S1) un algorithme qui résout ce type d'équation. +Cela tombe bien, vous connaissez (cf S1) un [algorithme](https://grond.iut-fbleau.fr/monnerat/maths_2024/src/branch/main/outils/cours/systeme_lineaire.pdf) qui résout ce type d'équation. Remarques : - pour certaines dimensions, la matrice \(A\) est inversible, et donc quelque soit la configuration initiale, il y a une solution. -- pour d'autres, la matrice \(A\) n'est plus inversible. Il n'y a pas de solution pour toutes les configurations initiales. +- pour d'autres dimensions, la matrice \(A\) n'est plus inversible. Il n'y a pas de solution pour toutes les configurations initiales. + vous pouvez proposer ces dimensions, mais il faudra vérifier alors que le jeu a une solution. - les calculs ici sont plus simples que le cas général, puisqu'on travaille modulo 2. + +