Algorithmes de multiplication et de division dans l'Égypte antique |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IntroductionLa méthode utilisée par les Égyptiens est attestée par le papyrus de Rhind (vers 1600 avant J.-C) qui se réfère à des documents du Moyen Empire (environ 2000 ans avant J. C). Les algorithmes de multiplication et de division sont suggérés par une liste de problèmes. Pour parodier Napoléon, «Du haut de ces algorithmes, 40 siècles vous contemplent !». Dans cette présentation, la méthode sera réinterprétée dans un langage moderne. Les algorithmes sont exprimés en langage Mathematica et les idées guides sont formulées en commentant un exemple numérique. Soit, par exemple, le produit 181×273 à effectuer. Une méthode consiste à exprimer le premier nombre en base 2 : 181×273 = (128 + 32 + 16 + 4 + 1)×273 = 1×273 + 4×273 + 16×273 + 32×273 + 128×273 = 273 + 22×273 + 24×273 + 25×273 + 27×273 Pour terminer le calcul, deux opérations arithmétiques suffisent : la multiplication de nombres par 2 et l’addition de nombres. En particulier, elle ne fait pas appel à des tables de multiplication. Expression d'un entier en base 2Pour convertir l’entier 181 en base 2, on peut procéder comme suit : 1-ère étape
a=181; i=1; d[i]=1; out={}; While[ d[i]≤a, AppendTo[out, d[i]]; d[i+1]=d[i]*2; i++]; TableForm[out]
2-ème étapeOn passe en revue chaque ligne, pour déterminer celles qui doivent être biffées :
e=a; n=i-1; out={}; Do[ If[ e≥d[i], f[i]=1;e=e-d[i], f[i]=0]; AppendTo[out, {d[i], f[i], e}], {i, n, 1, -1}]; TableForm[out]
Multiplication égyptiennePour multiplier 181 par 273, on peut procéder comme suit : 1-ère étape
a=181; b=273; i=1; d[i]=1; g[1]=b; out={}; While[ d[i]≤a, AppendTo[out, {d[i], g[i]}]; i++]; TableForm[out]
2-ème étape
n=i-1; e=a; out={}; Do[ If[ e≥d[i], f[i]=1;e=e-d[i];AppendTo[out, {d[i],f[i],e,g[i]}], f[i]=0;AppendTo[out, {d[i],f[i],e}] ], {i, n, 1, -1}]; TableForm[out]
3-ème étape
h=0; out={}; If[ f[i]==1, h=h+g[i]; AppendTo[out, {g[i], h}] ], {i, 1, n}];
Division égyptienneIl s’agit d’une division euclidienne : le quotient est un entier et le reste est entier. Alors que les Égyptiens savaient manipuler certaines fractions, dans le papyrus de Rhind, le reste est généralement ignoré. A titre d’exemple, considérons le quotient de 95432 par 285. Pour diviser 95432 par 285, on peut procéder comme suit. 1-ère étape
a=95432; b=285; i=1; d[i]=1; g[1]=b; out={}; AppendTo[out, {g[i], d[i]}]; i++];
2-ème étape
n=i-1; e=a; out={}; If[ e≥g[i], f[i]=1; e=e-g[i]; AppendTo[out, {g[i],f[i],e,d[i]}], f[i]=0; AppendTo[out, {g[i], f[i], e}] ], {i, n, 1, -1}];
3-ème étape
h=0; out={}; If[ f[i]==1, h=h+d[i]; AppendTo[out, {d[i], h}] ], {i, 1, n}];
Justification de la division égyptienneUne propriété de la division euclidienne est la suivante : Si r = a - b·q avec 0 ≤ r < b, alors r est le reste de la division de a par b, et q est le quotient de a par b. En effet, dans la 2-ème étape, colonne 3, la suite des restes r0 = 95423 (implicitement) r1 = 22472 = 95432 - 256×285; r1≥0 ; r2 = ... ... r9 = 95432-256×285-64×285-8×285-4×285-2×285 = 95432-285×(256+64+8+4+2) = 242; r9≥0 ; est décroissante ; elle est achevée, car r9 < 285. Il s’ensuit que, pour la division de 95432 par 285, le reste est r9 et le quotient est (256+64+8+4+2). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Version PDF | Contact | Accueil > Mathématiques, degré secondaire II |