Problème des pièces de monnaie
# Problème des pièces de monnaie

En mathématiques, le problème des pièces de monnaie, également appelé le problème des pièces de Frobenius ou le problème de Frobenius d'après le mathématicien Georg Frobenius, est un problème diophantien linéaire. Il s'agit de déterminer le montant le plus élevé que l'on ne peut pas représenter en n'utilisant que des pièces de monnaie de valeurs faciales fixées. Par exemple, le plus grand montant que l'on ne peut pas exprimer avec des pièces de 3 et de 5 unités est 7 unités. La solution du problème pour un ensemble de pièces donné est appelée le nombre de Frobenius de cet ensemble.

Il existe une formule explicite pour le nombre de Frobenius dans le cas où il n'y a que deux valeurs de pièces. Si le nombre de valeurs est plus grand, on ne connaît pas de formule explicite ; toutefois, pour tout nombre fixé de valeurs faciales, il existe un algorithme qui calcule le nombre de Frobenius en temps polynomial (en fonction du logarithme des valeurs faciales données en entrée). On ne connaît pas d'algorithme polynomial comme fonction du nombre de valeurs faciales, et le problème général, où le nombre de valeurs faciales est arbitrairement grand, est $NP-difficile^,.$

## Énoncé

En termes mathématiques, le problème s'énonce comme suit.

   Étant donnés des entiers strictement positifs $a_{1},a_{2},\ldots ,a_{n}$ distincts et premiers entre eux dans leur ensemble, déterminer le plus grand entier qui n'est pas une combinaison linéaire à coefficients entiers positifs ou nuls de ces entiers, c'est-à-dire qui n'est pas de la forme $k_{1}a_{1}+k_{2}a_{2}+\cdots +k_{n}a_{n}$ pour des entiers positifs ou nuls $k_{1},k_{2},\ldots ,k_{n}$.

Ce plus grand entier est appelé le nombre de Frobenius de l'ensemble $\{a_{1},a_{2},\ldots ,a_{n}\}$ et est noté habituellement $g(a_{1},a_{2},\ldots ,a_{n})$.

La condition que les nombres $a_{1},a_{2},\ldots ,a_{n}$ soient premiers entre eux, c'est-à-dire que leur PGCD d soit égal à 1, est nécessaire et suffisante pour assurer l'existence du nombre de Frobenius :

* toute combinaison linéaire de ces entiers est divisible par d, donc un entier qui n'est pas multiple de d ne peut pas être exprimé de cette manière or, lorsque d > 1, il n'existe pas de plus grand entier non multiple de d (par exemple, si toutes les valeurs faciales sont paires, on ne peut pas exprimer un montant impair) ;
* au contraire, si d = 1, tout entier m est combinaison linéaire à coefficients entiers de $a_{1},a_{2},\ldots ,a_{n}$ et même, si m est assez grand, à coefficients entiers positifs, d'après un théorème de Schur. Dans ce cas, le nombre de Frobenius existe.

## Nombres de Frobenius pour n petit

Une formule existe pour n = 1 et n = 2. Aucune formule explicite générale n'est connue pour des valeurs plus grandes, problème que Frobenius mentionnait souvent dans ses $cours^,.$

### n = 1

Dans ce cas, l'unique valeur faciale est nécessairement 1 donc le nombre de Frobenius vaut –1.

### n = 2

Le nombre de Frobenius d'une paire d'entiers a, b > 0 premiers entre eux est : g(a, b) = ab – a – b = (a – 1)(b – 1) – 1.

Démonstration. Soit m un entier arbitraire. Comme a et b sont premiers entre eux, il existe exactement un couple (r, s) d'entiers relatifs tels que m = ra + sb et 0 ≤ s ≤ a – 1. La condition pour que m soit « représentable » (par deux entiers positifs) est que, pour ce couple particulier (r, s), le coefficient r soit, comme s, positif. Ce n'est pas le cas si m = –a + (a – 1)b, mais c'est le cas dès que m ≥ –a + (a – 1)b + 1 = (a – 1)(b – 1) puisqu'alors, ra = m – sb ≥ (a – 1)(b – 1) – (a – 1)b = –a + 1.

Cette formule fait partie des théorèmes du folklore mathématique (en) dont on ne connaît pas le découvreur. Elle est extrêmement $souvent^,$ attribuée par erreur à James Joseph Sylvester en 1884, alors qu'il la considérait sans doute comme connue et que sa publication consistait en un autre exercice, que l'on peut dès lors reformuler ainsi : démontrer que parmi les entiers de 0 à g(a, b), exactement la moitié sont représentables.

### n = 3

On connaît des algorithmes rapides pour le calcul du nombre de Frobenius de trois entiers $a_{1},a_{2},a_{3}$ (détaillés dans demi-groupe numérique), même si les calculs peuvent être longs et pénibles quand on les effectue à la main. On connaît des minorants et des majorants pour les nombres de Frobenius de trois entiers. Des données expérimentales montrent que la minoration de Davison,

    $g(a_{1},a_{2},a_{3})\geq {\sqrt {3a_{1}a_{2}a_{3}}}-a_{1}-a_{2}-a_{3},$

est assez fine.

## Nombres de Frobenius pour des ensembles particuliers

La formule ci-dessus pour n = 2 se généralise de deux façons.

### Suites arithmétiques

Un formule simple existe pour des ensembles d'entiers d'une suite arithmétique. Étant donné trois entiers $a,d,s$, avec $\operatorname {pgcd} (a,d)=1$, on a :

    $g(a,a+d,a+2d,\dots ,a+sd)=\left(\left\lfloor {\frac {a-2}{s}}\right\rfloor +1\right)a+(d-1)(a-1)-1.$

### Suites géométriques

De même, il existe une formule explicite pour les nombres de Frobenius d'un ensemble d'entiers en suite géométrique. Étant donné trois entiers $m,n,k$, avec $\operatorname {pgcd} (m,n)=1$, on a :

    $g(m^{k},m^{k-1}n,m^{k-2}n^{2},\dots ,n^{k})=n^{k-1}(mn-m-n)+{\frac {m^{2}(n-1)(m^{k-1}-n^{k-1})}{m-n}}.$

## Exemples élémentaires

### Nombres McNugget

Le problème des nombres $McNugget^,$ est un cas particulier du problème des pièces de monnaie.

Un nombre n est dit McNugget si l'on peut, en choisissant bien ses boîtes de Chicken McNuggets, parvenir à un total de n nuggets. Les boîtes classiques contiennent 6, 9 ou 20 nuggets. D'après un théorème de Schur, comme 6, 9 et 20 sont premiers entre eux dans leur ensemble, tout entier « assez grand » peut être exprimé comme combinaison linéaire à coefficients entiers positifs de ces trois nombres. Autrement dit : il existe un plus grand nombre qui n'est pas un nombre McNugget — c'est le nombre de Frobenius de l'ensemble {6, 9, 20}.

Mais on peut expliciter complètement cet exemple, sans invoquer le théorème de Schur, en démontrant directement que le plus grand entier qui n'est pas un nombre McNugget est 43 :

* tous les entiers à partir de 44 sont des nombres McNugget car

    44 = 6 + 9 + 9 + 20  45 = 9 + 9 + 9 + 9 + 9  46 = 6 + 20 + 20  47 = 9 + 9 + 9 + 20  48 = 6 + 6 + 9 + 9 + 9 + 9  49 = 9 + 20 + 20
    et tout entier plus grand s'obtient en additionnant un certain nombre de 6 à l'une de ces partitions ;
* 43 n'est pas un nombre McNugget : on ne peut pas obtenir 43 nuggets avec seulement des boîtes de 6 et 9 car le résultat est un multiple de 3. Si l'on prend une seule boîte de 20, on ne peut pas faire mieux parce que les 23 nuggets restants ne forment pas un multiple de 3. Enfin, en prenant deux boîtes de 20, il reste 3 nuggets.

On peut en outre vérifier de même que parmi les 44 nombres de 0 à 43, la moitié ne sont pas des nombres McNugget (leur liste est la suite A065003 de l'OEIS : 1, 2, 3, 4, 5, 7, 8, 10, 11, 13, 14, 16, 17, 19, 22, 23, 25, 28, 31, 34, 37 et 43) et trouver des partitions pour ceux de l'autre moitié (y compris pour 0, égal à la somme vide).

**Variantes**

* Depuis l'introduction d'une boîte Happy Meal de 4 nuggets, le plus grand nombre qui n'est pas McNugget descend à 11.
* Dans certains pays où la boîte de 9 nuggets est remplacée par une boîte de 10, on ne peut obtenir qu'un nombre pair de nuggets, si bien qu'aucun nombre impair n'est un nombre McNugget.

### D'autres exemples

En rugby à XV, il y a quatre types de points : le but (3 points), le drop (3 points), l'essai (5 points) et l'essai transformé (7 points). En combinant ces valeurs, tout total est possible sauf 1, 2 et 4.

De même, au football américain, tout résultat est possible dans une partie ordinaire sauf 1 point.

