Vous connaissez sans doute ce problème vieux comme le monde:
Un vieux chef de clan possédant un troupeau de chameaux vient de mourir. A chacun de ses trois fils, il lègue une
partie de ses animaux: à l'ainé il donne la moitié, à son deuxième fils un tiers, et à son cadet un septième.
Le souci est que le vieil homme possédait 41 chameaux. Sa famille qui ne souhaitait pas distibuer des morceaux de chameau
était bien embêtée, jusqu'à ce qu'un vieux sage passant par là leur trouve une solution qui satisfasse le testament sans
maltraiter d'animal.
Prenez un moment pour chercher la solution avant de continuer la lecture (selectionnez le texte caché ci-dessous pour avoir la solution).
L'astuce précédente repose sur le fait que 1/2 + 1/3 + 1/7 = 41/42, c'est-à-dire 1/2 + 1/3 + 1/7 + 1/42 = 1.
En fait ces nombres ne sont qu'une solution particulère de l'équation 1/a + 1/b + 1/c + 1/d = 1 avec a,b,c,d entiers positifs.
Ce genre d'équation faisant intervenir des nombres entiers sont appelées diophantiennes.
L'équation précédente possède 14 solutions différentes, aux permutations près.
Le programme des chameaux a une double fonction: il résout le problème des chameaux, et les équations diophantiennes du style 1/a1 + 1/a2 + ... + 1/ai = f/g (a1, a2, ai, f, g entiers positifs). Le programme demande au départ quel type de problème il doit résoudre.
Pour le problème des chameaux, le programme demande le nombre de fils qu'a le chef de clan. Une fois le calcul effectué, toutes les solutions sont affichées: le nombre de chameaux qu'obtient chaque fils, ainsi que le nombre total de chameaux dans le troupeau.
Dans ce mode, le programme demande la fraction f/g, puis le nombre de fractions qui interviendra dans la décomposition. Chaque ligne du résultat donne les valeurs des ai.