Multiplier sans jamais additionner

C'est au détour d'un tweet qu'on découvre une façon accélérée de multiplier 2 nombres sans poser d'addition.

Prenons 73 et 67 dont la multiplication fait 4891. Selon la méthode habituelle, nous avons la décomposition suivante :

    73
x   67
------
   511
+ 438
------
  4891

soit: (60 + 7) * 73 = 10 * (6 * 73) + (7 * 73)

On y voit une multiplication par 10 qui induit une double addition pour déterminer les chiffres du milieu. N'existerait-il pas une méthode sans retenue en ayant une forme AA*100+BB avec AA et BB obtenus séparément à partir des seuls nombres initiaux ?

La vidéo nous dit que oui. On va poser le calcul à l'envers pour vérifier la règle générale et aller plus loin.

Soit X et Y les deux nombres à multiplier et k une constante indéterminée. L'égalité suivante se contente d'ajouter des termes dont la somme est nulle :

X*Y = X*Y + (kX - kX) + (kY - kY) + (k²-k²)

Réarrangeons ces termes pour trouver des identités remarquables :

= (kX + kY - k²) + (k² - kX - kY + X*Y)
= k * (X + Y - k) + (k - X) * (k - Y)
= k * (X - (k - Y)) + (k - X) * (k - Y)

Cette présentation du résultat est intéressante. Dans l'idée d'avoir k=100 pour notre exemple, on a AA=X-(k-Y) et BB=(k-X)*(k-Y). Soustraire X et Y de k est très facile à calculer, et AA ainsi que BB se calculent séparément. Il faut surtout que k soit une puissance de 10 (10n) immédiatement supérieure à X et Y.

Bien entendu, ce n'est pas si simple, car si le terme BB dépasse 100, il y aura une addition à faire pour avoir la valeur définitive de AA. Dans la vidéo, ils ont pris 97 et 94 dont la multiplication des termes soustraits de 100 font 18, donc moins que 100. On peut vérifier que ça marche :

X = 97
Y = 94
k = 100
k-X = 3
k-Y = 6
AA = X-(k-Y) = 97-6 = 91
BB = (k-X)*(k-Y) = 3*6 = 18
AABB = X*Y = 9118

Dans notre exemple, comme il existe une bien plus grande différence de X et Y avec k, le terme BB excède 100. Il faut faire des calculs supplémentaires, ce qui réduit l'intérêt de la méthode dans ce cas précis. La formule fonctionne malgré tout :

X = 73
Y = 67
k = 100
k-X = 27
k-Y = 33
AA = X-(k-Y) = 73-33 = 40
BB = (k-X)*(k-Y) = 27*33 = 30*33 - 3*33 = 990-99 = 891
AABB = X*Y = 4891

L'addition n'a été utilisée que pour fusionner les termes AA et BB lorsque l'écart de X et Y avec k est trop grand.

En terme de calcul informatique, cette méthode n'a aucun avantage particulier. Elle est juste humainement plus simple dans certains cas très précis.

Posté par admin le 3 janvier 2025 à 20:53 - Sciences
Texte soumis à la licence du site, sauf mention contraire
Rechercher plus d'informations

 

Commentaires

Evaluer l'article : * * * *

Ajouter un commentaire

Pseudo:
Site web: http://...
Message:
Avez-vous trouvé l'information que vous cherchiez ? Votre retour d'expérience sur le site nous intéresse.