On peut décomposer une fraction rationnelle, ou la factoriser :
>>> from sympy.simplify.rewrite import apart, together >>> from sympy.abc import x,y,z >>> apart(1/( (x+2)*(x+1) ), x) 1/(1 + x) - 1/(2 + x) >>> apart((x+1)/(x-1), x) 1 - 2/(1 - x) >>> together(1/x + 1/y + 1/z) 1/x/y/z*(x*y + x*z + y*z)
Une fraction égyptienne est une somme de fractions unaires (numérateurs égaux à 1, dénominateur positif) avec les dénominateurs tous différents les uns des autres.
Tout nombre rationnel positif peut être représenté sous cette forme, d'une infinité de façons différentes.
Cependant, il n'y a qu'un nombre fini de manières d'écrire une fraction quelconque donnée en fractions égyptiennes, à nombre de termes fixé.
Ainsi, $\frac{3}{4}$ est égal à $\frac{1}{2}+\frac{1}{4}$ et c'est la seule manière d'écrire $\frac{3}{4}$ à l'aide de deux fractions égyptiennes.
On utilise le fait que $\frac{1}{a} = \frac{1}{a+1} + \frac{1}{a(a+1)}$, qui ont des dénominateurs strictement plus grand que $a$.
Alors $\frac{p}{q} = \frac{1}{q} + \frac{1}{q} + ... + \frac{1}{q}$ et on remplace toutes les fractions identiques (sauf une) avec la formule précédente. A reproduire autant de fois que nécessaire.
Supposons que l'on souhaite convertir $\frac{19}{20}$ :
$\frac{20}{19} \approx 1$ donc $\frac{1}{1+1}$ est première fraction égyptienne, et on poursuit avec $\frac{19}{20}-\frac{1}{2} = \frac{9}{20}$.
$\frac{20}{9} \approx 2$ donc $\frac{1}{2+1} = \frac{1}{3}$ est deuxième fraction égyptienne, et on poursuit avec $\frac{9}{20} - \frac{1}{3} = \frac{7}{60}$.
$\frac{60}{7} \simeq 8$ donc $\frac{1}{8+1} = \frac{1}{9}$ est troisième fraction égyptienne, et on poursuit avec $\frac{7}{60} - \frac{1}{9} = \frac{1}{180}$.
Cette dernière est une fraction unaire, donc on a fini, et alors $\frac{19}{20} = \frac{1}{2} + \frac{1}{3} + \frac{1}{9} + \frac{1}{180}$.
Ces deux algorithmes ne produisent pas les plus petites des fractions égyptiennes.
Dans un traité d'arithmétique d'Al-Khowarizmi (d'où proviendrait le mot algorithme), un riche marchand qui possédait 17 chameaux décida, sur son lit de mort (il n'avait plus toute sa tête) que :
Ce qui, en considérant qu'une moitié de chameau ne mène pas loin, n'a aucun sens.
Un vieux sage apporta un chameau supplémentaire : l'aîné pris alors 9 chameaux (la moitié des 18), le second 6 (le tiers) et le dernier 2 (le neuvième)...et il resta alors un chameau sur les 18, que le vieux sage reprit avec lui.
Une telle configuration arrive pour $\frac{1}{a} + \frac{1}{b} + \frac{1}{c} = \frac{d-1}{d}$ , soit $\frac{1}{a} + \frac{1}{b} + \frac{1}{c} + \frac{1}{d} = 1$.
Essayez de réaliser les algorithmes présentés ci-dessus, pour obtenir une décomposition d'une fraction donnée en fractions Egyptiennes.
Ces algorithmes n'étant pas élémentaires, on ne s'attardera pas dessus, si l'on n'est pas en avance.
En fonction de l'intérêt, et de la rapidité de programmation, on pourra :