E659 : Transfert de boules
Problème proposé par Michel Lafond
Trois boîtes contiennent au départ [0, 0, 3n] boules [n entier positif].
Il s’agit d’arriver à la répartition [n, n, n] en n étapes, sachant qu’à l’étape numéro i [i = 1,2,...,n] on doit transférer exactement i boules d’une boîte à une autre.
Pour quelles valeurs de n cette opération est-elle possible ? Donner une stratégie lorsque c’est possible.
Il y a n boules dans le dernier transfert ; avant celui-ci, la répartition est donc (0,n,2n), (n,0,2n), (0,2n,n), (2n,0,n),(n,2n,0) ou (2n,n,0). Partant de (0,0,3n) cela donne un solde de déplacements de n, 2n, ou 3n boules.
Le problème est manifestement impossible pour n=1, n=2 (il reste une boule dans la boîte 3) et n=4 (après 4 transferts, il reste 2, 8 ou 10 boules dans la troisième boîte).
Les cas n=6, 7 et 10 sont particuliers : pour n=6, on transfère 1 boule dans la première boîte, 2+3=5 dans la deuxième, puis 4 et 5 entre les boîtes 1 et 2, pour obtenir (0,6,12) ; de même, pour n=10, on transfère 1+2=3 dans une boîte, 3+4=7 dans une autre, puis on échange successivement 5, 6, 7, 8 et 9 boules entre les boîtes 1 et 2 pour obtenir (0,10,20).
Enfin, pour n=7, 1+6=7 dans une boîte, 2+3+4+5=14 dans une autre.
Sinon, pour n=0,1 ou 3 (mod 4), il suffit d’effectuer les transferts entre deux boîtes, avec un solde de n ou 2n (dans le cas où n=1 (mod 4)), les nombres négatifs
désignant des transferts en sens inverse : pour n=3, 1+2=3 ; n=5, 1+2+3+4=10 ; n=8, 1+2+3-4+5-6+7=8 ; n=9, 1+2-3+4+5-6+7+8=18, etc...
Pour savoir comment effectuer les transferts, on calcule T(n-1)=1+2+...+n-1=(n-1)n/2, puis la demi-différence d entre T(n-1) et la cible, c’est à dire 2n si n=1 (mod 4) ou n sinon, et enfin on constitue une somme égale à d en utilisant un minimum de termes de la suite décroissante n-1, n-2,..., 3 (en commençant par les plus grands) : ces termes seront changés de signe (transfert inverse) pour obtenir une somme algébrique égale à la cible, les sommes partielles restant toujours positives. Par exemple n=11, T(10)=55, (55-11)/2=22=10+9+3, 1+2-3+4+5+6+7+8-9-10=11, n=12, T(11)=66, (66-12)/2=27=11+10+6, 1+2+...+5-6+7+8+9-10-11=12, n=13, T(12)=78, (78-26)/2=27=12+11+4, 1+2+3-4+5+...+10-11-12=26, etc...
Si n=2 (mod 4), on transfère 1 vers la boîte 1, puis les transferts de 2 à n-2 entre les boîtes 2 et 3, et le transfert n-1 de la boîte 2 vers la boîte 1: la cible est 3n-1 pour les transferts de 2 à n-2, ce qui équivaut à une cible de 3n avec des transferts de 1 à n-2. On calcule alors T(n-2), puis d=(T(n-2)-3n)/2, et l’on constitue comme ci-dessus une somme d avec un minimum de termes à inverser de la suite n-2, n-3,..., 4.
Par exemple, n=14, T(12)=78, (78-42)/2=18=12+6, 2+3+4+5-6+7+8+9+10+11-12=41