Monsieur Excel
Pour tout savoir faire sur Excel !

11 novembre 2017

Enigme 2 – Simulation n°1

En analysant le problème posé dans l’article précédent, je voyais bien comment créer une très bonne solution,  mais je me suis dit qu’il serait intéressant de voir comment trouver – par étapes successives – la meilleure solution par simulation dans Excel.

Je me suis donc dit que l’on pouvait en toute logique se limiter au départ aux valeurs de 1 à 16 pour le bloc A. J’ai alors mis au point un modèle dans lequel je tirais ces nombres au hasard.

Voici la formule de B1, recopiée vers le bas : =alea().

En colonne C, j’ai calculé la position de chaque aléa avec en C1 la formule : =rang(B1;B:B).

En E1, recopiée dans le bloc E1:H4, la formule =equiv(4*ligne()+colonne()-8;$C:$C;0) tire au hasard un des 16 nombres.

En J1, recopiée dans le bloc J1:L3, la formule =somme(E1:F2).

En N1, recopiée dans le bloc N1:O2, la formule =somme(J1:K2).

Enfin, en Q1, la formule =somme(N1:O2).

J’ai ensuite créé une macro qui faisait 100.000 itérations en copiant le bloc E1:H4 et en le collant en S1 chaque fois que la solution en Q1 était inférieure à celle de X1, que je mettais alors à jour avec la nouvelle solution.

Chaque simulation de 100.000 itérations durait 28 à 29 secondes et me donnait des résultats entre 352 et 360.


J’ai constaté que toutes les simulations que je faisais aboutissaient à un résultat dans lequel les quatres cubes du milieu portaient les numéros 1 à 4.

J’ai alors augmenté à 1.000.000 d’itérations et observé que, dans ce cas, je trouvais toujours 352.

Bravo donc aux deux lecteurs qui ont proposé cette solution en commentaire dans l’article précédent !