Je suis perplexe.
Je n'arrive pas à faire marcher la voie que j'indiquais, en utilisant les congruences.
Je reprends la situation.
On numérote les cases de l'échiquier de

à

Les configurations de l'échiquier avec les pièces sont codées par les éléments de

(0 pour pile, 1 pour face), qu'on peut voir comme espace vectoriel de dimension

sur le corps à deux éléments. Je note
)
la base canonique de cet espace vectoriel (

est le vecteur dont toutes les composantes sont

sauf la

-ème qui est

).
On doit associer à chacune de ces configurations, c.-à-d. à chaque élément de

une case, c.-à-d. un élément de

. On veut une fonction

(la fonction qui permet au magicien de trouver la bonne case) et on veut que cette fonction satisfasse la propriété suivante :
=i)
(c'est la propriété qui permet à l'assistant du magicien, quelles que soient la configuration

et la case

choisies par le membre de l'audience, de pouvoir modifier

sur une seule case

de façon à ce que le magicien trouve bien le numéro

à partir de la configuration modifiée). À noter que ce

est en fait unique, c'est une fonction de

et

.
J'ai pris la peine de formaliser mathématiquement le problème de façon la plus explicite possible. Et arrivé là, je ne vois pas comment le

de Ben314 (qui correspond, si j'ai bien compris, à l'addition dans l'espace vectoriel sur le corps à deux éléments) permet de trouver une fonction

qui remplit le cahier des charges. Je dois dire que je n'arrive pas non plus à m'en sortir avec la congruence modulo

. A priori, le fait que le nombre de cases soit un carré ne me semble pas crucial, et je dirais qu'on peut remplacer

par n'importe quel entier

.
Il y a sans doute quelque chose d'évident que je ne vois pas. Bref, j'aimerais des explications.