Technique de multiplication dite russe — Wikipédia
La technique de multiplication dite russe consiste à diviser par 2 le multiplicateur (et ensuite les quotients obtenus), jusqu'à un quotient nul, et à noter les restes ; et à multiplier parallèlement le multiplicande par 2. On additionne alors les multiples obtenus du multiplicande correspondant aux restes non nuls.
Cela revient en fait à écrire le multiplicateur en base 2 et à faire ensuite des multiplications par 2 et des additions. C'est donc une variante de la technique de la multiplication en Égypte antique, bien qu'elle ait pu être redécouverte indépendamment.
Algorithme
[modifier | modifier le code]En pseudo code, l'algorithme de multiplication dite russe peut s'écrire :
Fonction mult (x,y) r = 0 Tant que x est différent de 0 Si x est impair alors r = r + y x = x - 1 fin si x = x / 2 y = y * 2 Fin tant que Renvoyer r Fin fonction
Note : les opérations effectuées ici sont des opérations sur des entiers et sont à valeurs dans les entiers.
Exemple de multiplications dites russes
[modifier | modifier le code]Pour 13 x 238 on peut écrire :
Opérations sur le multiplicateur | Opérations sur le multiplicande | Somme cumulée des multiples du multiplicande |
13 divisé par 2 : le quotient est 6, le reste est 1, | 238, | 238 |
6 divisé par 2 : le quotient est 3, le reste est 0, | , | Le reste est nul, pas d'ajout du multiple. 238 |
3 divisé par 2 : le quotient est 1, le reste est 1, | , | Le reste est non nul, on ajoute le multiple obtenu à cette étape :
|
1 divisé par 2 : le quotient est 0, le reste est 1. Le quotient est nul, on stoppe l'algorithme. | Le reste est non nul, on ajoute le multiple obtenu à cette étape :
| |
13 = 1101 en base 2 (obtenu en lisant les restes de bas en haut dans le tableau, et écrit selon la convention usuelle de droite — unités — à gauche — puissances élevées).
Pour limiter le nombre d'opérations, il faut généralement choisir comme multiplicateur le plus petit des deux nombres à multiplier. Toutefois, si l'un d'eux est une puissance de 2, c'est plutôt lui qu'il faut préférer (il n'y a pas d'addition). Les restes deviennent forcément nuls, et donc le résultat devient stable, à partir du moment où le quotient est lui-même nul. Formellement, la condition d'arrêt (s'arrêter lorsque le quotient est nul) est donc seulement une commodité.
Algorithme graphique
[modifier | modifier le code]Graphiquement, l'on peut dire qu'une multiplication transforme un rectangle multiplicateur x multiplicande en une ligne en conservant le nombre d'éléments.
L'algorithme graphique consiste pour la multiplication russe à :
- a) si le multiplicateur est pair, prendre la moitié inférieure du rectangle et la coller sur un côté (on transforme ainsi un rectangle 2n x p en un rectangle n x 2p) ;
b) si le multiplicateur est impair, enlever d'abord la dernière ligne et la mettre à part, ce qui ramène au cas précédent 1.a) ; - recommencer jusqu'à n'obtenir qu'une seule ligne ;
- additionner toutes les lignes mises à part.
Lien avec l'algorithme d'exponentiation rapide
[modifier | modifier le code]La technique de multiplication dite russe est très liée, mathématiquement, à l'algorithme d'exponentiation rapide, et peut être vue comme une version « additive » de ce dernier. En effet, la technique de multiplication dite russe permet de calculer, pour tout entier k et élément g d'un monoïde additif, l'élément (addition de k termes) tandis que l'algorithme d'exponentiation rapide permet de calculer, pour tout entier k et élément g d'un monoïde multiplicatif, l'élément (multiplication de k termes). Autrement dit, exprimés dans le langage des monoïdes, ces deux algorithmes sont strictement identiques.