Complexité en tempsEn algorithmique, la complexité en temps est une mesure du temps utilisé par un algorithme, exprimé comme fonction de la taille de l'entrée. Le temps compte le nombre d'étapes de calcul avant d'arriver à un résultat. Habituellement, le temps correspondant à des entrées de taille n est le temps le plus long parmi les temps d’exécution des entrées de cette taille ; on parle de complexité dans le pire cas. Les études de complexité portent dans la majorité des cas sur le comportement asymptotique, lorsque la taille des entrées tend vers l'infini, et l'on utilise couramment les notations grand O de Landau.
Classe de complexitéEn informatique théorique, et plus précisément en théorie de la complexité, une classe de complexité est un ensemble de problèmes algorithmiques dont la résolution nécessite la même quantité d'une certaine ressource. Une classe est souvent définie comme l'ensemble de tous les problèmes qui peuvent être résolus sur un modèle de calcul M, utilisant une quantité de ressources du type R, où n, est la taille de l'entrée. Les classes les plus usuelles sont celles définies sur des machines de Turing, avec des contraintes de temps de calcul ou d'espace.
Nombre premiervignette|Nombres naturels de zéro à cent. Les nombres premiers sont marqués en rouge. vignette|Le nombre 7 est premier car il admet exactement deux diviseurs positifs distincts. Un nombre premier est un entier naturel qui admet exactement deux diviseurs distincts entiers et positifs. Ces deux diviseurs sont 1 et le nombre considéré, puisque tout nombre a pour diviseurs 1 et lui-même (comme le montre l’égalité n = 1 × n), les nombres premiers étant ceux qui ne possèdent pas d'autre diviseur.
P (complexité)La classe P, aussi noté parfois PTIME ou DTIME(nO(1)), est une classe très importante de la théorie de la complexité, un domaine de l'informatique théorique et des mathématiques. Par définition, un problème de décision est dans P s'il est décidé par une machine de Turing déterministe en temps polynomial par rapport à la taille de l'entrée. On dit que le problème est décidé en temps polynomial. Les problèmes dans P sont considérés comme « faisables » (feasible en anglais), faciles à résoudre (dans le sens où on peut le faire relativement rapidement).
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.
NP (complexité)La classe NP est une classe très importante de la théorie de la complexité. L'abréviation NP signifie « non déterministe polynomial » (« en »). Un problème de décision est dans NP s'il est décidé par une machine de Turing non déterministe en temps polynomial par rapport à la taille de l'entrée. Intuitivement, cela revient à dire qu'on peut vérifier « rapidement » (complexité polynomiale) si une solution candidate est bien solution.
Multiplicationthumb|La multiplication de 4 par 3 donne le même résultat que la multiplication de 3 par 4. La multiplication est l'une des quatre opérations de l'arithmétique élémentaire avec l'addition, la soustraction et la division. Cette opération est souvent notée avec la croix de multiplication « × », mais peut aussi être notée par d'autres symboles (par exemple le point médian « · ») ou par l'absence de symbole. Son résultat s'appelle le produit, les nombres que l'on multiplie sont les facteurs.
Exponentiation rapideEn informatique, l'exponentiation rapide est un algorithme utilisé pour calculer rapidement de grandes puissances entières. En anglais, cette méthode est aussi appelée square-and-multiply (« mettre au carré et multiplier »). La première façon de calculer une puissance x est de multiplier x par lui-même n fois. Cependant, il existe des méthodes bien plus efficaces, où le nombre d'opérations nécessaires n'est plus de l'ordre de n mais de l'ordre de .
Matrix multiplication algorithmBecause matrix multiplication is such a central operation in many numerical algorithms, much work has been invested in making matrix multiplication algorithms efficient. Applications of matrix multiplication in computational problems are found in many fields including scientific computing and pattern recognition and in seemingly unrelated problems such as counting the paths through a graph. Many different algorithms have been designed for multiplying matrices on different types of hardware, including parallel and distributed systems, where the computational work is spread over multiple processors (perhaps over a network).
ExponentiationEn mathématiques, l’exponentiation est une opération binaire non commutative qui étend la notion de puissance d'un nombre en algèbre. Elle se note en plaçant l'un des opérandes en exposant (d'où son nom) de l'autre, appelé base. Pour des exposants rationnels, l'exponentiation est définie algébriquement de façon à satisfaire la relation : Pour des exposants réels, complexes ou matriciels, la définition passe en général par l'utilisation de la fonction exponentielle, à condition que la base admette un logarithme : L'exponentiation ensembliste est définie à l'aide des ensembles de fonctions : Elle permet de définir l'exponentiation pour les cardinaux associés.
Théorie de la complexité (informatique théorique)vignette|Quelques classes de complexité étudiées dans le domaine de la théorie de la complexité. Par exemple, P est la classe des problèmes décidés en temps polynomial par une machine de Turing déterministe. La théorie de la complexité est le domaine des mathématiques, et plus précisément de l'informatique théorique, qui étudie formellement le temps de calcul, l'espace mémoire (et plus marginalement la taille d'un circuit, le nombre de processeurs, l'énergie consommée ...) requis par un algorithme pour résoudre un problème algorithmique.
Complexité paramétréeEn algorithmique, la complexité paramétrée (ou complexité paramétrique) est une branche de la théorie de la complexité qui classifie les problèmes algorithmiques selon leur difficulté intrinsèque en fonction de plusieurs paramètres sur les données en entrée ou sur la sortie. Ce domaine est étudié depuis les années 90 comme approche pour la résolution exacte de problèmes NP-complets. Cette approche est utilisée en optimisation combinatoire, notamment en algorithmique des graphes, en intelligence artificielle, en théorie des bases de données et en bio-informatique.
Arithmétique modulaireEn mathématiques et plus précisément en théorie algébrique des nombres, l’arithmétique modulaire est un ensemble de méthodes permettant la résolution de problèmes sur les nombres entiers. Ces méthodes dérivent de l’étude du reste obtenu par une division euclidienne. L'idée de base de l'arithmétique modulaire est de travailler non sur les nombres eux-mêmes, mais sur les restes de leur division par quelque chose. Quand on fait par exemple une preuve par neuf à l'école primaire, on effectue un peu d'arithmétique modulaire sans le savoir : le diviseur est alors le nombre 9.
Nombres premiers sexyEn mathématiques, un couple de nombres premiers sexy (ou nombres premiers sexys) est un couple de nombres premiers dont la différence est 6 (autrement dit, un couple de la forme (p, p + 6) où p et p + 6 sont des nombres premiers). C'est le cas, par exemple, des nombres 5 et 11. Certains de ces nombres premiers sont consécutifs, par exemple 23 et 29 sont premiers et il n'y a pas de nombre premier entre eux deux. Le terme « sexy » est un jeu de mots fondé sur le mot latin pour « six » : sex.
Formules pour les nombres premiersEn mathématiques, la recherche de formules exactes donnant tous les nombres premiers, certaines familles de nombres premiers ou le nombre premier s'est généralement avérée vaine, ce qui a amené à se contenter de formules approchées. Cette page recense les principaux résultats obtenus. L'espoir d'obtenir une formule exacte et simple donnant le n-ième nombre premier p, ou le nombre π(n) de nombres premiers inférieurs ou égaux à n, s'est très tôt heurté à l'extrême irrégularité de leur répartition, ce qui a amené à se contenter d'objectifs moins ambitieux.
Table de multiplicationUne table de multiplication affiche dans les lignes et colonnes le résultat de la multiplication des petits nombres entiers naturels. Le terme usité du Moyen Âge au était « livret » (ce terme est encore courant en Suisse). Le système de numération décimale de position permet d'effectuer la multiplication de deux nombres quelconques à l'aide de la seule connaissance des produits des nombres de 0 à 9 entre eux. C'est à l'école primaire que s'effectue l'apprentissage des tables qui récapitulent tous ces produits.
Technique de multiplication dite russeLa 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.
Système binaireLe système binaire (du latin binārĭus, « double ») est le système de numération utilisant la base 2. On nomme couramment bit (de l'anglais binary digit, soit « chiffre binaire ») les chiffres de la numération binaire positionnelle. Un bit peut prendre deux valeurs, notées par convention 0 et 1. Le système binaire est utile pour représenter le fonctionnement de l'électronique numérique utilisée dans les ordinateurs. Il est donc utilisé par les langages de programmation de bas niveau.
Quadruplet premierEn théorie des nombres, un quadruplet premier est une suite de quatre nombres premiers consécutifs de la forme (p, p+2, p+6, p+8). C'est la seule forme possible pour quatre nombres premiers consécutifs d'écarts entre eux minimaux, en dehors des quadruplets (2,3,5,7) et (3,5,7,11). Par exemple (5, 7, 11, 13) et (11, 13, 17, 19) sont des quadruplets premiers. Un quadruplet de nombres premiers impairs consécutifs a un écart entre le plus petit et le plus grand de ces nombres d'au moins 6, il ne peut être de 6 car le seul triplet de nombres premiers consécutifs de la forme (p, p+2, p+4) est (3, 5, 7) (voir triplet premier).
Géométrie arithmétiquevignette|Exemples de figures géométriques: un cône et un cylindre. La géométrie arithmétique est une branche de la théorie des nombres, qui utilise des outils de géométrie algébrique pour s'attaquer à des problèmes arithmétiques. Quelques exemples de questions qui peuvent se poser : Si on sait trouver des racines d'une équation polynomiale dans toutes les complétions d'un corps de nombres, peut-on en déduire que cette équation a des racines sur ce corps ? On sait répondre à la question dans certains cas, on sait que la réponse est non dans d'autres cas, mais on pense (c'est une conjecture) connaître l'obstruction et donc savoir reconnaître quand cela fonctionne.