En informatique, l'algorithme de Karatsuba est un algorithme pour multiplier rapidement deux nombres de n chiffres avec une complexité temporelle en O(n) ≈ O(n) au lieu de O(n) pour la méthode naïve. Il a été développé par Anatolii Alexevich Karatsuba en 1960 et publié en 1962 .
Pour multiplier deux nombres de n chiffres, la méthode naïve multiplie chaque chiffre du multiplicateur par chaque chiffre du multiplicande. Cela exige donc n produits de deux chiffres. Le temps de calcul est en O(n2).
En 1960, Karatsuba remarque que pour tout , le calcul naïf d'un produit :
qui semble nécessiter les quatre produits ac, ad, bc et bd, peut en fait être effectué seulement avec les trois produits ac, bd et (a – b)(c – d) en regroupant les calculs sous la forme suivante :
Pour de grands nombres et en prenant , la méthode peut être appliquée de manière récursive pour les calculs de ac, bd et (a – b)(c – d) en scindant à nouveau a, b, c et d en deux et ainsi de suite. C'est un algorithme de type diviser pour régner.
La multiplication par la base de numération (10 dans l'exemple précédent, mais 2 pour les machines) correspond à un décalage de chiffre, et les additions sont peu coûteuses en temps ; ainsi, le fait d'être capable de calculer les grandeurs nécessaires en 3 produits au lieu de 4 mène à une amélioration de complexité.
Exécutons l'algorithme pour calculer le produit 1237 × 2587.
Pour calculer, 1237 × 2587, on écrit 1237 × 2587 = a0 104 + (a0 + a2 - a1) 102 + a2 où a0 = 12 × 25, a1 = (12 – 37) × (25 – 87) = 25 × 62 et a2 = 37 × 87.
Pour calculer 12 × 25, on écrit 12 × 25 = a0' 102 + (a0' + a2' - a1') 10 + a2' où a0' = 1 × 2, a1' = (1 – 2) × (2 – 5) = -1 × -3 et a2' = 2 × 5.
Les calculs 1 × 2 = 2, 2 × 5 = 10 et -1 × -3 = 3 se réalisent en temps constant.
On obtient 12 × 25 = 2 × 100 + (2 + 10 – 3) × 10 + 10 = 300.
De la même façon, on obtient a1 = 25 × 62 = 1550.
De la même façon, on obtient a2 = 37 × 87 = 3219.
d'où 1237 × 2587 = 300 × 1002 + (300 + 3219 – 1550) × 100 + 3219 = 3000000 + 196900 + 3219 = 3200119.
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
The following tables list the computational complexity of various algorithms for common mathematical operations. Here, complexity refers to the time complexity of performing computations on a multitape Turing machine. See big O notation for an explanation of the notation used. Note: Due to the variety of multiplication algorithms, below stands in for the complexity of the chosen multiplication algorithm. This table lists the complexity of mathematical operations on integers.
Les algorithmes de multiplication permettent de calculer le résultat d'une multiplication. Graphiquement, il s'agit de transformer un rectangle multiplicateur × multiplicande en une ligne, en conservant le nombre d'éléments. Ce type de multiplication n'utilise que des additions et des multiplications ou des divisions par 2. Elle ne nécessite pas de connaître de table de multiplication (autre que la multiplication par 2).
Discrete mathematics is a discipline with applications to almost all areas of study. It provides a set of indispensable tools to computer science in particular. This course reviews (familiar) topics a
Couvre la conception des sous-systèmes de chemin de données, en se concentrant sur les composants combinatoires de base et diverses options de mise en œuvre pour les additionneurs, les multiplicateurs et les leviers de vitesses.
Couvre les algorithmes pour les grands nombres, Z_n et les ordres dans un groupe, en expliquant les opérations arithmétiques et les concepts cryptographiques.
Couvre la conception de sous-systèmes de chemin de données, en se concentrant sur divers types d'additionneurs et d'algorithmes de multiplication.
Driven by the demand for real-time processing and the need to minimize latency in AI algorithms, edge computing has experienced remarkable progress. Decision-making AI applications stand out for their heavy reliance on data-centric operations, predominantl ...
This paper develops a fast algorithm for computing the equilibrium assignment with the perturbed utility route choice (PURC) model. Without compromise, this allows the significant advantages of the PURC model to be used in large-scale applications. We form ...
PurposeMagnetic resonance imaging (MRI) artifacts are originated from various sources including instability of an magnetic resonance (MR) system, patient motion, inhomogeneities of gradient fields, and so on. Such MRI artifacts are usually considered as ir ...