A731. Le classement des billes
A7. Problèmes de pesées
Problème suggéré par Augustin Genoud
Jules possède des billes d’apparence identique. Il sait qu’elles sont toutes de masses légèrement différentes. Il aimerait les classer, dans l’ordre, de la plus lourde à la plus légère. Pour cela, il ne dispose que d’une petite balance à plateaux sur laquelle il ne peut mettre qu’une bille de chaque côté. Chaque utilisation de la balance constitue un test.
Q
1Combien de tests doit-il effectuer, au minimum, pour classer 5 billes, dans le pire des cas et en appliquant la meilleure stratégie ? [***]
Q
2Combien de tests doit-il effectuer, au minimum, pour classer 8 billes, dans le pire des cas et en appliquant la meilleure stratégie ? [****]
Q
3Pour les plus courageux : combien de billes, au maximum, peut-il classer en 34 tests, dans le pire des cas et en appliquant la meilleure stratégie ? [*****]
Solution proposée par Jean Nicot
Il faut toujours tester la bille inconnue X avec la bille ou l’une des deux billes de poids moyen. Après chaque classement, on renomme les billes dans l’ordre alphabétique, A étant la plus lourde.
Il est utile de connaitre le nombre de tests nécessaire dans le pire cas pour placer une bille X parmi n billes déjà rangées.
Placer X avec A : un test suffit 1 bille 1 test Placer X dans A B : deux tests au pire 2 billes rangées +2 tests Placer X dans A B C : un test avec B puis un avec A ou C 3 billes rangées +2 tests Placer X dans A B C D un test avec B puis un avec C et D 4 billes rangées +3 tests Placer X dans A B C D E un test avec C puis deux avec AB ou DE 5 billes rangées +3 tests Placer X dans A B C D E F un test avec C puis deux avec AB ou DEF 6 billes rangées +3 tests Placer X dans A B C D E F G un test avec D puis deux avec ABC ou DEF 7 billes rangées +3 tests Placer X dans A B C D E F G H un test avec D puis 2 avec ABC ou 3 si EFGH 8 billes rangées +4 tests Placer X dans A B C D E F G H I un test avec E puis 3 avec ABCD ou FGHI 9 billes rangées +4 tests Placer X dans A B C D E F G H I J un test avec E puis 3 avec ABCD ou FGHIJ 10 billes rangées +4 tests Placer X dans A B C D E F G H I J K un test avec F puis 3 avec ABCDE ou GHIJK 11 billes rangées +4 tests Placer X dans ABCDE F GHIJKL un test avec F puis 3 avec ABCDE ou GHIJKL 12 billes rangées +4 tests Placer X dans ABCDEF G HIJKLM un test avec G puis 3 avec ABCDEF ou HIJKLM 13 billes rangées +4 tests Placer X dans ABCDEF G HIJKLMN un test avec G puis 3 / ABCDEF ou HàN 14 billes rangées +4 tests Placer X dans ABCDEFG H IJKLMNO un test avec H puis 3 avec AàG ou HàO 15 billes rangées +4 tests Placer X dans ABCDEFG H IJKLMNOP un test avec H puis 3 / AàG ou 4/HàP 16 billes rangées +5 tests Il est alors facile d’évaluer le nombre de tests an nécessaire au maximum pour ranger n billes
Q1- Pour placer 5 billes, on ajoute à la première 1 bille, puis une autre bille à 2, puis à 3 et 4 billes, soit 1+2+2+3=8 tests
Q2- Pour placer 8 billes, on en ajoute une successivement à 1 bille, puis à 2 billes, puis à 3,…,puis à 7 billes rangées soit 1+2+2+3+3+3+ 3=17 tests
Q3- Pour placer 12 billes, on ajoute à 8 billes les 9ème à 12ème 17+4+4+4+4= 33 tests
et pour 13 billes il faut 33+4=37 tests et le 34ème test seul est inefficace pour placer une 13ème bille.
On place 12 billes.
Généralisation
Soit an le nombre de tests à faire pour ajouter une bille à une suite rangée de n billes. Un premier test sur la bille médiane partage en deux listes dont la plus longue possède [n/2] billes (avec [n/2] division entière) . La relation de récurrence est an=1+a[n/2] avec a1=1
Il faut r+1 tests pour ajouter une bille dans une suite rangée de 2r à 2r+1-1 billes soit pour 2r suites qui nécessitent chacune r+1 tests pour l’ajout d’une bille.
Si k est la plus grande puissance de 2 inférieure ou égale à n, n=2k+q avec q dans la plage {0, 2k-1}
an =k+1 tant que n est dans la plage [2k … 2k+1-1] soit pour 2k valeurs consécutives
Soit Tn le nombre total de tests pour ranger n billes. T1 = Tn = ai puisqu’on ajoute 1,2,.. ,n-1 billes à la première.
Si q=0, Tn =T2k
= 1+n(k-1) =1+2k(k-1) Tn =T2k
+q = T2k
+(k+1)q=1+2k(k-1) +(k+1)(n-2k)= 1+n(k+1)-2*2k
Tn = 1+n(k+1)-2k+1 où k est la plus grande puissance de 2 ne dépassant pas n Ainsi pour classer 8 billes, on a 8=23
soit k+1=4 et T8= 1+8*4-24= 17 12 billes, on a 12=23+4 soit k+1=4 et T12= 1+12*4-24= 33
Les valeurs successives de Tn sont 0, 1, 3 ,5, 8, 11, 14, 17, 21, 25, 29, 33, 36, 39, 42, 45, 49, 54, 59, 64,…(voir OEIS A001855)