Diviser pour régner (informatique)thumb|652x652px|Trois étapes (diviser, régner, combiner) illustrées avec l'algorithme du tri fusion En informatique, diviser pour régner (du latin , divide and conquer en anglais) est une technique algorithmique consistant à : Diviser : découper un problème initial en sous-problèmes ; Régner : résoudre les sous-problèmes (récursivement ou directement s'ils sont assez petits) ; Combiner : calculer une solution au problème initial à partir des solutions des sous-problèmes.
Arithmétique multiprécisionL'arithmétique multiprécision désigne l'ensemble des techniques mises en œuvre pour manipuler dans un programme informatique des nombres (entiers, rationnels, ou flottants principalement) de taille arbitraire. Il s'agit d'une branche de l'arithmétique des ordinateurs. On oppose l'arithmétique multi-précision à l'arithmétique en simple ou double précision, comme celle spécifiée par le standard IEEE 754 pour les nombres flottants.
Algorithme de multiplication de BoothL'algorithme de Booth a pour but de multiplier deux nombres binaires signés représentés en complément à deux, en supposant les opérations de décalage nettement moins onéreuses que les additions/soustractions. Cet algorithme a été inventé par Andrew Booth en 1950 alors qu'il effectuait des recherches en cristallographie. Soit à calculer 500×A ; 500 = 256+128+64+32+16+4 = 1111101002 . Mais 1 = 2-1 ; 3 = 4-1; 7=8-1; 127 = 128-1 etc. On peut donc remplacer un train d'additions binaires par une addition de tête et une soustraction de queue.
MultiplieurEn électronique analogique, un multiplieur est un circuit dont le signal de sortie est le produit de la valeur instantanée de ses signaux d'entrée. En électronique numérique, un multiplieur est un circuit électronique effectuant une multiplication. Des multiplieurs sont intégrés dans la plupart des processeurs actuels, tant pour réaliser des multiplications entre nombres entiers qu'entre nombres représentés en virgule flottante. En électronique analogique, un multiplieur est un circuit dont le signal de sortie est le produit de la valeur instantanée de ses signaux d'entrée.
Algorithme de KaratsubaEn 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).
DistributivitéEn mathématiques, plus précisément en arithmétique et en algèbre générale, la distributivité d'une opération par rapport à une autre est une généralisation de la propriété élémentaire : « le produit d'une somme est égal à la somme des produits ». Par exemple, dans l'expression 2 × (5 + 3) = (2×5) + (2×3), le facteur 2 est distribué à chacun des deux termes de la somme 5 + 3. L'égalité est alors bien vérifiée : à gauche 2 × 8 = 16, à droite 10 + 6 = 16.
Règle à calculLa règle à calcul (ou règle à calculer) est un instrument mécanique qui permet le calcul analogique et sert à effectuer facilement des opérations arithmétiques de multiplication et de division par simple déplacement longitudinal d’un coulisseau gradué. Elle utilise pour cela la propriété des fonctions logarithmes qui transforment un produit en somme et une division en différence. Elle permet également la réalisation d'opérations plus complexes, telles que la détermination de racines carrées ou cubiques et tous les calculs trigonométriques courants.
Transformation de Fourier rapideLa transformation de Fourier rapide (sigle anglais : FFT ou fast Fourier transform) est un algorithme de calcul de la transformation de Fourier discrète (TFD). Sa complexité varie en O(n log n) avec le nombre n de points, alors que la complexité de l’algorithme « naïf » s'exprime en O(n). Ainsi, pour n = , le temps de calcul de l'algorithme rapide peut être 100 fois plus court que le calcul utilisant la formule de définition de la TFD.
Computational complexityIn computer science, the computational complexity or simply complexity of an algorithm is the amount of resources required to run it. Particular focus is given to computation time (generally measured by the number of needed elementary operations) and memory storage requirements. The complexity of a problem is the complexity of the best algorithms that allow solving the problem. The study of the complexity of explicitly given algorithms is called analysis of algorithms, while the study of the complexity of problems is called computational complexity theory.
FactorielleEn mathématiques, la factorielle d'un entier naturel n est le produit des nombres entiers strictement positifs inférieurs ou égaux à n. Cette opération est notée avec un point d'exclamation, n!, ce qui se lit soit « factorielle de n », soit « factorielle n », soit « n factorielle ». Cette notation a été introduite en 1808 par Christian Kramp. Par exemple, la factorielle 10 exprime le nombre de combinaisons possibles de placement des 10 convives autour d'une table (on dit la permutation des convives).