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.
Problème NP-completEn théorie de la complexité, un problème NP-complet ou problème NPC (c'est-à-dire un problème complet pour la classe NP) est un problème de décision vérifiant les propriétés suivantes : il est possible de vérifier une solution efficacement (en temps polynomial) ; la classe des problèmes vérifiant cette propriété est notée NP ; tous les problèmes de la classe NP se ramènent à celui-ci via une réduction polynomiale ; cela signifie que le problème est au moins aussi difficile que tous les autres problèmes de l
Problème P ≟ NPvignette|400px|Représentation visuelle des deux configurations possibles. Le problème P ≟ NP est une conjecture en mathématiques, et plus précisément en informatique théorique, considérée par de nombreux chercheurs comme une des plus importantes conjectures du domaine, et même des mathématiques en général. L'Institut de mathématiques Clay a inclus ce problème dans sa liste des sept problèmes du prix du millénaire, et offre à ce titre un million de dollars à quiconque sera en mesure de démontrer P = NP ou P ≠ NP ou de démontrer que ce n'est pas démontrable.
NP-difficilevignette|300px|Mise en évidence d'un problème NP-difficile si Problème P ≟ NP. Un problème NP-difficile est, en théorie de la complexité, un problème appartenant à la classe NP-difficile, ce qui revient à dire qu'il est au moins aussi difficile que les problèmes les plus difficiles de la classe NP. Ainsi, un problème H est NP-difficile, si tout problème L de la classe NP peut être réduit en temps polynomial à H. Si un problème NP-difficile est dans NP, alors c'est un problème NP-complet.
NumPyNumPy est une bibliothèque pour langage de programmation Python, destinée à manipuler des matrices ou tableaux multidimensionnels ainsi que des fonctions mathématiques opérant sur ces tableaux. Plus précisément, cette bibliothèque logicielle libre et open source fournit de multiples fonctions permettant notamment de créer directement un tableau depuis un fichier ou au contraire de sauvegarder un tableau dans un fichier, et manipuler des vecteurs, matrices et polynômes.
Sûreté du typageLa sûreté du typage est un principe permettant d'améliorer la qualité de la programmation. Dans les langages à typage statique, l'un des objectifs est d'intercepter les erreurs de type de données lors de la compilation. Un type peut être vu comme un ensemble de valeurs et un ensemble d'opérateurs. La programmation objet a introduit les notions d'objets, messages, classes, héritage. Il est tentant de faire coller les classes à des types.
Module sur un anneauEn mathématiques, et plus précisément en algèbre générale, au sein des structures algébriques, : pour un espace vectoriel, l'ensemble des scalaires forme un corps tandis que pour un module, cet ensemble est seulement muni d'une structure d'anneau (unitaire, mais non nécessairement commutatif). Une partie des travaux en théorie des modules consiste à retrouver les résultats de la théorie des espaces vectoriels, quitte pour cela à travailler avec des anneaux plus maniables, comme les anneaux principaux.
Module projectifEn mathématiques, un module projectif est un module P (à gauche par exemple) sur un anneau A tel que pour tout morphisme surjectif f : N → M entre deux A-modules (à gauche) et pour tout morphisme g : P → M, il existe un morphisme h : P → N tel que g = fh, c'est-à-dire tel que le diagramme suivant commute : center Autrement dit : P est projectif si pour tout module N, tout morphisme de P vers un quotient de N se factorise par N.
Tableau (structure de données)En informatique, un tableau est une structure de données représentant une séquence finie d'éléments auxquels on peut accéder efficacement par leur position, ou indice, dans la séquence. C'est un type de conteneur que l'on retrouve dans un grand nombre de langages de programmation. Dans les langages à typage statique (comme C, Java et OCaml), tous les éléments d’un tableau doivent être du même type. Certains langages à typage dynamique (tels APL et Python) permettent des tableaux hétérogènes.
Module libreEn algèbre, un module libre est un module M qui possède une base B, c'est-à-dire un sous-ensemble de M tel que tout élément de M s'écrive de façon unique comme combinaison linéaire (finie) d'éléments de B. Une base de M est une partie B de M qui est à la fois : génératrice pour M, c'est-à-dire que tout élément de M est combinaison linéaire d'éléments de B ; libre, c'est-à-dire que pour toutes familles finies (ei)1≤i≤n d'éléments de B deux à deux distincts et (ai)1≤i≤n d'éléments de l'anneau sous-jacent telles que a1e1 + .
Array (data type)In computer science, array is a data type that represents a collection of elements (values or variables), each selected by one or more indices (identifying keys) that can be computed at run time during program execution. Such a collection is usually called an array variable or array value. By analogy with the mathematical concepts vector and matrix, array types with one and two indices are often called vector type and matrix type, respectively. More generally, a multidimensional array type can be called a tensor type, by analogy with the physical concept, tensor.
Finitely generated moduleIn mathematics, a finitely generated module is a module that has a finite generating set. A finitely generated module over a ring R may also be called a finite R-module, finite over R, or a module of finite type. Related concepts include finitely cogenerated modules, finitely presented modules, finitely related modules and coherent modules all of which are defined below. Over a Noetherian ring the concepts of finitely generated, finitely presented and coherent modules coincide.
Array programmingIn computer science, array programming refers to solutions that allow the application of operations to an entire set of values at once. Such solutions are commonly used in scientific and engineering settings. Modern programming languages that support array programming (also known as vector or multidimensional languages) have been engineered specifically to generalize operations on scalars to apply transparently to vectors, matrices, and higher-dimensional arrays.
Type systemIn computer programming, a type system is a logical system comprising a set of rules that assigns a property called a type (for example, integer, floating point, string) to every "term" (a word, phrase, or other set of symbols). Usually the terms are various constructs of a computer program, such as variables, expressions, functions, or modules. A type system dictates the operations that can be performed on a term. For variables, the type system determines the allowed values of that term.
DonnéeUne donnée est ce qui est connu et qui sert de point de départ à un raisonnement ayant pour objet la détermination d'une solution à un problème en relation avec cette donnée. Cela peut être une description élémentaire qui vise à objectiver une réalité, le résultat d'une comparaison entre deux événements du même ordre (mesure) soit en d'autres termes une observation ou une mesure. La donnée brute est dépourvue de tout raisonnement, supposition, constatation, probabilité.
Vecteur (structure de données)En informatique, un vecteur désigne un conteneur d'éléments ordonnés et accessibles par des indices, dont la taille est dynamique : elle est mise à jour automatiquement lors d'ajouts ou de suppressions d'éléments. On retrouve les vecteurs dans de nombreux langages de programmation, notamment le C++ et le Java. Ils sont alors inclus dans des bibliothèques et l'utilisateur n'a pas besoin d'en programmer un. En langage objet, la classe vecteur est généralement polymorphe, c'est-à-dire qu'il est possible de l'utiliser avec n'importe quel type d'objet.
Disposition des touches d'un clavier de saisieLa disposition des touches d'un clavier de saisie permet de saisir les caractères de l'alphabet d'une langue sur une machine à écrire, un clavier d'ordinateur et sur certains appareils électroniques plus récents (téléphone portable, assistant personnel). La plupart des pays utilisent une ou plusieurs dispositions adaptées. Les dispositions de touches sont l'héritage des machines à écrire. Elles ont été adaptées aux claviers d'ordinateurs puis à d'autres périphériques.
Type (informatique)vignette|Présentation des principaux types de données. En programmation informatique, un type de donnée, ou simplement un type, définit la nature des valeurs que peut prendre une donnée, ainsi que les opérateurs qui peuvent lui être appliqués. La plupart des langages de programmation de haut niveau offrent des types de base correspondant aux données qui peuvent être traitées directement — à savoir : sans conversion ou formatage préalable — par le processeur.
Antenne rideauthumb|Antennes rideaux HF de radiodiffusion à Wertachtal, Bavière thumb|Antenne rideau HF de quatre fois quatre éléments dipôle à Hörby, Suède Une Antenne rideau est une antenne directive pour les ondes courtes (décamétriques) qu’on utilise pour des émetteurs radio. L’objectif des services de radiodiffusion en ondes décamétriques est la couverture d’une zone géographique étendue. Pour cela, il faut avoir une puissance d’émission suffisante et une fréquence adaptée à la prévision ionosphérique.
Antenne réseau à commande de phasevignette|Antenne réseau à commande de phase pour satellite En télécommunications, une antenne réseau à commande de phase (phased array antenna en anglais) est un groupe d'antennes élémentaires alimentées avec des signaux dont la phase est ajustée de façon à obtenir le diagramme de rayonnement voulu. Cette technologie a été développée pour la radioastronomie vers 1946, par Antony Hewish et Martin Ryle, à l'université de Cambridge. Ils ont obtenu un prix Nobel de physique après leurs travaux sur plusieurs grands radiotélescopes utilisant ce concept.