A 722 – Les trésors d’Ispahan
De retour d’Ispahan, Zig présente à Puce n sacs qui contiennent chacun 100 pièces de monnaie de la dynastie Kadjar. Les pièces pèsent toutes 10 grammes chacune à l’exception de 100 pièces plus légères qui se trouvent dans un seul sac et pèsent 9 grammes chacune.
Puce dispose d’une balance électronique qui affiche en grammes le poids des objets pesés avec un plafond de 1 kilogramme. Après quelques minutes de réflexion, Puce affirme que pour déceler le sac des pièces légères, k pesées au minimum sont nécessaires. Il ajoute qu’il lui faudrait une pesée et deux pesées
supplémentaires si Zig lui présentait respectivement n + 1 sacs et 2n sacs (avec dans les deux cas toujours un seul sac de pièces légères à identifier).
Trouver n et k
Source : olympiades iraniennes de mathématiques.
Proposition
Nota : « sac sLG » = le sac de 100 pièces de 9 g.
A/ chercher le nombre maximum (nmax) de sacs que l’on peut traiter en k pesées.
Indice n° 1: Pour déceler le sac sLG dans un lot de n sacs, il faut k pesées au minimum. S’il y a n+1 sacs, alors k+1 pesées sont nécessaires, ce qui signifie que l’on doit chercher le nombre maximum (nmax) de sacs que l’on peut traiter en k pesées.
I/ Elaboration d’une méthode de repérage (par pesée)
E(n) = {(n-1) sacs de 100 pièces de 10 g + 1 sac sLG} ou {n sacs de 100 pièces de 10 g}
On peut toujours configurer un ensemble de n sacs en m groupes gj indexés par j (j=1 à m ≤ n).
Chaque gj contient qj sacs. Les nombres qj (qj ≤ n) peuvent être identiques ou différents entre eux.
On a la configuration E(n)= {gj(qj) ; n = q1+q2+…+qj ; j= 1 à m}
Désignons par x (x = 1 à j) la valeur inconnue de l’index du groupe gx (qx sacs) susceptible de contenir le sac sLG. On montrera que x = 0 signifie qu’il n’y a aucun sac sLG dans E(n).
E(n) est dit traité (prélèvements de pièces dans tous les sacs) en constituant une charge de N pièces établie avec la totalité des prélèvements de pj pièces/sac dans qj sacs de chaque groupe gj(qj) pour j = 1 à m. Les nombres pj peuvent être identiques ou différents entre eux.
La charge N (nombre de pièces) ainsi construite est donnée par la relation : N = N(pj,qj) = (p1q1+p2q2+…+pjqj) ; j = 1 à m ≤ n ; (pj ≤ 100)
Pour une charge N configurée, son poids M (en g) donné par la relation M = (10N-px) est fonction de la variable px, nombre de pièces prélevées dans les sacs du groupe gx dont le sac sLG. On met en évidence un lien entre le poids M de la charge N et le sac sLG.
De la connaissance de M avec la pesée, on déduit la valeur du nombre px par la formule : px = 10N-M ≤ 100.
On vérifie bien que pour px=0 il n’y a pas de sac sLG dans N donc dans E(n).
A ce stade, pour une valeur px≠ 0, on peut simplement affirmer l’existence du sac sLG mais il est impossible d’identifier avec certitude le groupe gx auquel il appartient si la valeur de px n’est pas unique.
Pour utiliser px comme indicateur caractéristique du groupe gx, il faut ajouter une condition d’unicité de chaque pj : p1≠…≠px…≠pj (pj ≤ 100) 1 ≤ j ≤ n ≤ 100 ; (ex : p1 = 41 ; p6 = 8 ; p20= 2 …)
Pour plus de commodité, on peut ordonner pj par valeurs croissantes en les indexant avec j croissant : p1 < p2…< pj ≤ 100 ; (ex : p1 = 5 ; p6 = 8 ; p13 = 19…)
Cela crée une relation f biunivoque [pj = f(j) ou j = f-1(pj)] entre j et pj qui permet d’associer la valeur pj à l’index j et inversement.
Connaissant la valeur spécifique de px associée à l’index x de gx, on peut identifier sans ambigüité le groupe gx susceptible de contenir le sac sLG.
Contrainte physique de la balance : la charge est plafonnée à 1 000 g
Il s’ajoute la contrainte physique M = (10N-px) ≤ 1 000 N ≤ 100+ px/10. Le résultat px déterminé par la pesée M pouvant être nul, on a simplement N ≤ 100.
Résultats intermédiaires (par pesée):
n sacs traités à chaque pesée = E(n) = {j groupes gj(qj) ; 1 ≤ j ≤ n ≤ 100
} n = q
1+q
2+…+q
j≤ 100N
= N(pj,qj) = (p1q1+p2q2+…+pjqj)≤ 100 ;
p1 < p2…< pj ≤ 100 ;La pesée de N donne la valeur M
px connu par : px = 10N-M ≤ 100px = 0 le sac sLG est en-dehors des n sacs traités ≤ 100 le sac sLG est dans un autre lot à traiter px ≠ 0 x connu le groupe gx identifié et les (j-1) autres groupes sont normaux
le sac sLG (encore non identifié) est parmi qx sacs et (n- qx) sacs sont normaux
Etude des coefficients pj pour optimiser la configuration de la charge N
Il faut déterminer les pj de N(pj,qj) de façon à pouvoir maximiser n avec une charge maximale.
n=
q
1+q
2+…+q
j; N=
(p1q1+p2q2+…+pjqj) ≤100 ; 1
≤ p1 < p2…< pj ≤ 100 Soit pour j fixé :j = 1 ;
n
=q
1;
N=p1q1 ≤100
;1
≤ p1 ; on veut nmax donc (q1) max avec Nmax (p1)mini p1=1 Nopt = q1j = 2 ;
n
=q
1+q
2;
N=p1q1+p2q2 ≤100 ; 1
≤ p1 < p2 ; on veut nmax donc (q1+q2) max avec Nmax=A nmax= A/p2 + [1-(p1/p2)]q1 p2=(p2)mini ≥ p1+1 ≥ 2 p1=1 ; p2=2 Nopt = q1+2q2
j = 3 ;
n
=q
1+q
2+q
3;
N=p1q1+p2q2+p3q3 ≤100 ;
p1 < p2 < p3 on veut nmax donc (q
1+q
2+q
3)
maxavec N
max=A n
max=
A/p3 + [1-(p1/p3)]q1+[1-(p2/p3)]q2 p3=(p3)mini ≥ p2+1 ≥ p1+2 ≥ 3 p1=1 ; p2=2 ; p3=3 Nopt = q1+2q2+3q3La généralisation
se traduit par la relation : pj = j Nopt =(q
1+2q
2+…+jq
j) configuration optimisée
Résultats optimisés (par pesée) : n, nombre de sacs traitésE(n) = {j groupes gj(qj)} ;
n = (q
1+q
2+…+q
j)
≤ 100N =
N
opt(j, q
j) = (q
1+2q
2+…+jq
j) ≤ 100 avec
1 ≤ j ≤ jmax x = 10N-M ≤ 100 avec 1 ≤ x ≤ jII/ Détermination empirique du nombre maximum de sacs que l’on peut traiter en plusieurs pesées successives pour déceler le sac sLG parmi nmax sacs : étude de nmax pour 0,1,2…,k pesées
a/ k = 0 ; n = 1 1 seul sac sLG nmax= 1 b/ k = 1 ; 2 ≤ n ≤ nmax
Parmi gj(qj), l’unique pesée permet d’identifier le groupe gx(qx) contenant le sac sLG. Puis identifier le sac sLG
parmi qx sacs sans pesée n’est possible que si qx = 1 (1 ≤ x ≤ j)
qj =1 et gj(1)
q
1+q
2+…+q
j=(1+1+…+1)= j x 1=j j groupes de 1 sac ≡ j sacs
Nopt = (1+2+…+j) = j(j+1)/2 ≤ 100 j ≤ jmax=13 charge Nmax = 13 sacs1 ≤ j ≤ 13 ; x = [10N(j)-M] sac sa = gx(1) est identifié par x Recherche du maximum de n sacs traités en 1 pesée :
n > 13 : on répartit n sacs en 2 groupes : G1(13) et G2(n-13) Si la pesée de G1 identifie le sac sLG dans G1: terminé
Si la pesée de G1 indique que le sac sLG n’est pas dans G1 le sac sLG est dans G2(n-13) Or sans pesée on a nmax=1 G2(n-13) = g(1) n-13=1 nmax = 14
Résultat : k = 1 ; 2 ≤ n ≤ 14 (nmax= 14)
c/ k = 2 ; 15 ≤ n ≤ nmax
Parmi gj(qj), la 1° pesée permet d’identifier le groupe gx(qx) contenant le sac sLG. Puis identifier le sac sLG parmi qx sacs avec la 2° pesée n’est possible que si qx ≤ 14 (1 ≤ x ≤ j)
On est conduit à répartir n sacs en j groupes {(j-1) groupes de 14 sacs + 1 groupe de r sacs restants} avec q1= q2 =…= qj-1 =14 et qj=r (0 ≤ r ≤ 13)
Nopt = 14[1+2+…+(j-1)]+jr = 14j(j-1)/2 + jr = j[7(j-1)+r] ≤ 100 jmax=4 et r=4 15 ≤ n ≤ 46 charge Nmax= 46 sacs dans le groupe G(46) = {g1(14), g2(14), g3(14), g4(4)}
15 ≤ n ≤ 46 ; x = [10N(j)-M] avec 1 ≤ x ≤ 4 groupe gx(qx≤ 14) contenant le sac sLG est identifié par x ; une 2° pesée des qx sacs permet de déceler le sac sLG
Recherche du maximum de n sacs traités en 2 pesées : 15 ≤ n ≤ 46 2 pesées : terminé
n > 46 : on répartit n sacs en 2 groupes : G1(46) et G2(n-46) Si les 2 pesées dans G1(46)identifient le sac sLG : terminé
Si la 1° pesée (x=0) dans G1(46) indique que le sac sLG n’est pas dans G1 le sac sLG est dans G2(n-46)
Or en 1 pesée on a nmax=14 G2(n-46) = G(14) n-46=14 nmax = 60 Résultat : k = 2 ; 15 ≤ n ≤ 60 (nmax= 60)
d/ k = 3 ; 61 ≤ n ≤ nmax
Parmi gj(qj), la 1° pesée permet d’identifier le groupe gx(qx) contenant le sac sLG. Puis identifier le sac sLG parmi qx sacs en 2 pesées restantes n’est possible que si qx ≤ 60 (1 ≤ x ≤ j)
On est conduit à répartir n sacs en j groupes {(j-1) groupes de 60 sacs + 1 groupe de r sacs restants}.
Nopt = 60[1+2+…+(j-1)]+jr = j[30(j-1)+r] ≤ 100 jmax=2 et r=20 61 ≤ n ≤ 80 charge Nmax= 80 sacs dans le groupe G(80) = {g1(60), g2(20)}
61 ≤ n ≤ 80 ; x = [10N(j)-M] avec 1 ≤ x ≤ 2 groupe gx(qx≤ 60) contenant le sac sLG est identifié par x ; puis 2 pesées des qx sacs permettent de déceler le sac sLG.
Recherche du maximum de n sacs traités en 3 pesées : 61≤ n ≤ 80 3 pesées : terminé
n > 80 : on répartit n sacs en 2 groupes : G1(80) et G2(n-80) Si les 3 pesées dans G1(80)identifient le sac sLG : terminé
Si la 1° pesée (x=0) dans G1(80) indique que le sac sLG n’est pas dans G1 le sac sLG est dans G2(n-80) Or en 2 pesées on a nmax=60 G2(n-80) = G(60) n-80=60 nmax= 140
Résultat : k = 3; 61 ≤ n ≤ 140 (nmax= 140) e/ k = 4 ; 141 ≤ n ≤ nmax
Parmi gj(qj), la 1° pesée permet d’identifier le groupe gx(qx) contenant le sac sLG. Puis identifier le sac sLG parmi qx sacs en 3 pesées restantes n’est possible que si qx ≤ 140 (1 ≤ x ≤ j).
Le plus grand groupe gx(qx) identifiable en 1 pesée est le groupe G(100) où qx= q1= 100 sacs avec N = 100 en prélevant 1 pièce par sac Nmax= 100 dans le seul groupe g1= G(100)
Recherche du maximum de n sacs traités en 4 pesées :
On est conduit à répartir n sacs en 2 groupes {G1(100) + G2(n-100)} avec n ≥ 141
Si la 1° pesée (x=1000-M=1) dans G1(100) indique que le sac sLG est dans G1, alors les 3 pesées suivantes dans G1(100)identifient le sac sLG : terminé
Si la 1° pesée (x=0) dans G1(100) indique que le sac sLG n’est pas dans G1 le sac sLG est dans G2(n-100).
Identifier le sac sLG parmi (n-100) sacs en 3 pesées restantes est possible si n-100 ≤ 140 n ≤ 240 Ainsi on définit G2(n-100) = G(140) nmax = 240
Résultat : k = 4; 141 ≤ n ≤ 240 (nmax= 240)
On établit le tableau nmax = f(k) cherché et pour k ≥ 3 : nmax = 100k-160
nmax = nombre maximum de sacs K = nombre de pesées
1 0
14 1
60 2
140 3
240 4
340 5
440 6
540 7
B/ chercher dans le tableau le nmax qui vérifie l’indice n°2
Indice n° 2 : k pesées pour n sacs et si 2n sacs, on a k’ = k+2 pesées K = 3 pour nmax= 140 ; si n = 2nmax= 280 k’ = 5 = k+2 vérifié Réponse : nmax = 140 sacs et k = 3 pesées