Je n’ai jamais terminé la démarche infernale du problème suivant, que j’avais relevé il y a … longtemps… :
Le peloton d’exécution est composé de N soldats alignés face au mur, et d’un capitaine.
Le capitaine est placé à gauche du soldat le plus à gauche de la ligne.
A un certain moment, le capitaine donne l’ordre de feu. Alors l’information se transmet de proche en proche jusqu’au moment où l’ordre de feu est exécuté.
Pour cela, chaque soldat est affecté d’un code d’état. Ce code état va de « REPOS » (l’état initial, à « FEU », en passant par un certain nombre d’états intermédiaires.
Le capitaine a deux états : « REPOS » et « FEU ». La différence avec les soldats est que c’est lui-même qui prend l’initiative de passer de REPOS à FEU.
L’état de tous les soldats est évalué simultanément à chaque cycle de calcul.
Le changement d’état d’un soldat ne dépend que de trois paramètres :
• son propre état,
• l’état de son voisin de gauche (qui est un autre soldat ou le capitaine pour le soldat le plus à gauche)
• l’état de son voisin de droite(ou l’absence de soldat pour le soldat le plus à droite).
Autres contraintes rigolotes :
Les soldats ne savent pas compter, et chaque soldat ignore d’ailleurs la composition du peloton.
Les soldats sont identiques et parfaitement interchangeables avant la mise en place du peloton.
Le passage à l’état « FEU » doit être simultané pour tous les soldats.
La question infernale : combien faut-il prévoir, au minimum, d’états en fonction de N ?
Avec un, deux ou trois soldats on arrive facilement à écrire les tables de changement d’états. Au-delà ça se complique…. A vous de jouer !!
-----