Enoncé A620 (Diophante) Les pièces de l’oncle Picsou
L’oncle Picsou a entassé 200 pièces en or (20 francs Napoléon) parmi les- quelles il y a une pièce fausse mais il ne sait pas laquelle. Son banquier lui propose d’examiner ces pièces de la manière suivante. L’oncle Picsou lui présente un lot de pièces. Si la pièce fausse est dans le lot, le banquier lui facture 3 euros. Si la pièce fausse n’y est pas, la facture est ramenée à 2 euros.
La pingrerie de l’oncle Picsou est légendaire. Comment l’aider à dépenser une somme minimale en euros pour qu’il soit certain d’identifier la fausse pièce ?
Ayant retenu vos bons conseils, l’oncle Picsou sort de sa poche 2011 pièces d’argent (5 francs Semeuse) parmi lesquelles il y a une pièce fausse. Quelle sera sa dépense minimale pour repérer la pièce fausse ?
Quelles seraient les dépenses minimales pour chacun des deux tas si le banquier facture la consultation d’un lot de pièces respectivement 2 euros et 1 euro au lieu de 3 euros et de 2 euros.
Solution de Jean Moreau de Saint-Martin
On détermine le budgetb(k) nécessaire pourkpièces de proche en proche par l’algorithme
b(k) = minp(max(3 +b(p),2 + b(k −p)), p étant le nombre de pièces présentées à la banque, à choisir pour une stratégie optimale.
A partir dek= 1 les valeurs successives de budget sont 0, 3, 5, 6, 7, 8, etc.
On voit que à partir de 5 la fonction b(k) est croissante et prend toutes les valeurs entières.
Cette propriété vaut pour toutk >3. Supposons en effet quecsoit le plus petit entier>3 tel queb(c+1)>1+b(c). Il existe des entierspetqtels que b(c) = max(3 +b(p),2 +b(c−p)),b(c+ 1) = max(3 +b(q),2 +b(c+ 1−q)).
Par l’optimalité deq, max(3 +b(p),2 +b(c+ 1−p))≥b(c+ 1)>1 +b(c), max(3 + b(p+ 1),2 +b(c −p)) ≥ b(c+ 1) > 1 +b(c) et cela entraîne b(p+ 1)>1 +b(p) oub(c+ 1−p)>1 +b(c−p), en contradiction avec la minimalité de c.
Ainsi pour tout budgetb≥5 il existe un nombren(b) maximum de pièces pour lequel le budgetbsuffit pour trouver la pièce fausse.
La meilleure stratégie pour traiter un nombre maximum de pièces avec un budget b est de présenter n(b−3) pièces pour commencer, et si la pièce fausse n’y est pas, on dispose d’un budgetb−2 pour traiter le reste, donc n(b) =n(b−2) +n(b−3).
Cela vaut pour b >7, pour queb−2 etb−3 soient toujours des valeurs deb(k).
Les valeurs den(b) sont, à partir de b= 5,
3, 4, 5, 7, 9, 12, 16, 21, 28, 37, 49, 65, 86, 114, 151, 200 =n(20), 265, 351, 465, 616, 816, 1081, 1432, 1897 =n(28), 2513 =n(29), . . .
Le budget pour 200 pièces est 20 euros, en commençant par présenter 86 pièces, et à chaque étape l’effectif où est localisée la pièce fausse est un des termes de la suite, de même que l’effectif à présenter ensuite.
Le budget qui peut être nécessaire pour 2011 pièces (ou tout nombre su- périeur, jusqu’à 2513 inclusivement) est 29 euros.
Dans la variante avec les coûts 1 et 2 euros, le même raisonnement donne n(b) =n(b−2) +n(b−1).
Les conditions initiales sont données par l’algorihme b(k) = minp(max(2 +b(p),1 +b(k−p)),
d’où les valeurs deb(k) 0, 2, 3, 4, 4, 5, 5, 5, . . . et celles den(b) à partir deb= 2
2, 3, 5, 8, . . ., donc les nombres de Fibonaccin(b) =Fb+1.
F12 = 144 < 200< 233 = F13 =n(12), la dépense pour 200 pièces peut être limitée à 12 euros.
F17 = 1597 < 2011 < 2584 = F18 = n(17), la dépense pour 2011 pièces peut être limitée à 17 euros.
1