Voyons, essayons d'économiser les pots vides...
Si on verse successivement dans un seul pot vide les 7 produits dans un ordre donné (par exemple A, puis B, puis C, puis D, puis E, puis F, puis G), 2 cas se présentent :
1. soit à un moment la couleur jaune apparait, alors on à identifié l'un des 2 produits qui donne la couleur (le dernier versé avant l'apparition de la couleur). Celà veut dire aussi quand le jaune apparait que le produit qui annule la couleur n'a pas encore été versé, donc si on continu à verser les produits restant, on finit par trouver le produit qui annule la couleur. On a déjà identifié 2 des 3 produits non inertes. Il ne reste plus alors qu'à verser le produit qui donne la couleur trouvé dans un deuxième pot vide et de verser les autres produits (à l'exception de celui qui annule la couleur) succesivement dans ce pot et d'arrêter lorsque la couleur apparait (ordre de versement indifférent). Et voilà, on a identifié le deuxième produit qui donne la couleur, le compte est bon.
2. soit rien de visible ne se produit, et cela veut dire que le produit qui annule la couleur a été versé avant au moins l'un des 2 produits qui donnent le jaune, donc un des 2 produits qui donne la couleur à été versé après le produit qui annule la couleur (corollaire : le dernier produit versé n'est pas celui qui annule la couleur). Dans ce cas, on permute le dernier produit en premier et on recommence l'expérience jusqu'à se trouver dans le cas 1. Il y a 7 produits, donc 7 ordres à envisager (ABCDEFG, GABCDEF, FGABCDE, EFGABCD, DEFGABC, CDEFGAB et BCDEFGA). Mais on peut optimiser car à chaque tests on élimine des possibilités pour le produit qui annule la couleur : au Nième test, on sait que les N-1 premiers produits ne sont pas celui qui annule la couleur. Donc si le 6ème test n'a pas aboutit au cas 1, on trouve le produit qui annule la couleur par élimination des 6 autres (en l'occurence l'avant dernier produit versé dans le 6ème test). De plus, comme on est dans le cas où un des 2 produits qui donne la couleur est versé après le produit qui l'annule, on le trouve aussi par déduction (c'est le dernier produit du 6ème test). On connait alors un des 2 produits qui donnent la couleur jaune et le produit qui l'annule : on se retrouve dans le cas 1.
Comment ça j'ai un esprit tordu! C'est pas clair? Bon, mais c'est pas de la tarte à expliquer par écrit en texte brut... ou alors sous forme d'algo :)
Quelques remarques complémentaires :
- on peut généraliser à N produits (par récurrence, ça doit pouvoir se démontrer...),
- pour N produits, le nombre de pots vides utilisés est compris entre 2 et N,
- il existe 1 possibilité sur N où l'on peut identifier les 3 produits non inertes par déduction sans jamais voir la couleur jaune !
Quelqu'un a une solution plus économique? En terme de pots utilisés, pas de simplicité de l'explication :)
|