Générateur de nombres aléatoiresUn générateur de nombres aléatoires, random number generator (RNG) en anglais, est un dispositif capable de produire une suite de nombres pour lesquels il n'existe aucun lien calculable entre un nombre et ses prédécesseurs, de façon que cette séquence puisse être appelée « suite de nombres aléatoires ». Par extension, on utilise ce terme pour désigner des générateurs de nombres pseudo aléatoires, pour lesquels ce lien calculable existe, mais ne peut pas « facilement » être déduit.
Générateur de nombres aléatoires matérielEn informatique, un générateur de nombres aléatoires matériel (aussi appelé générateur de nombres aléatoires physique ; en anglais, hardware random number generator ou true random number generator) est un appareil qui génère des nombres aléatoires à partir d'un phénomène physique, plutôt qu'au moyen d'un programme informatique. De tels appareils sont souvent basés sur des phénomènes microscopiques qui génèrent de faibles signaux de bruit statistiquement aléatoires, tels que le bruit thermique ou l'effet photoélectrique.
Hasardvignette|Les jeux de dés sont des symboles du hasard (jeux de hasard). vignette|Tyché ou Fortuna et sa corne d'abondance (fortune, hasard, en grec ancien, sort en latin) déesse allégorique gréco-romaine de la chance, des coïncidences, de la fortune, de la prospérité, de la destinée...|alt= Le hasard est le principe déclencheur d'événements non liés à une cause connue. Il peut être synonyme de l'« imprévisibilité », de l'« imprédictibilité », de fortune ou de destin.
Tableau associatifEn informatique, un tableau associatif (aussi appelé dictionnaire ou table d'association) est un type de données associant à un ensemble de clefs, un ensemble correspondant de valeurs. Chaque clef est associée à une seule valeur (au plus) : un tableau associatif correspond donc à une application de domaine fini en mathématiques. Du point de vue du programmeur, le tableau associatif peut être vu comme une généralisation du tableau : alors que le tableau traditionnel associe des entiers consécutifs à des valeurs, le tableau associatif associe des clefs d'un type arbitraire à des valeurs d'un autre type.
Algorithme de triUn algorithme de tri est, en informatique ou en mathématiques, un algorithme qui permet d'organiser une collection d'objets selon une relation d'ordre déterminée. Les objets à trier sont des éléments d'un ensemble muni d'un ordre total. Il est par exemple fréquent de trier des entiers selon la relation d'ordre usuelle « est inférieur ou égal à ». Les algorithmes de tri sont utilisés dans de très nombreuses situations. Ils sont en particulier utiles à de nombreux algorithmes plus complexes dont certains algorithmes de recherche, comme la recherche dichotomique.
C (langage)C est un langage de programmation impératif, généraliste et de bas niveau. Inventé au début des années 1970 pour réécrire Unix, C est devenu un des langages les plus utilisés, encore de nos jours. De nombreux langages plus modernes comme C++, C#, Java et PHP ou JavaScript ont repris une syntaxe similaire au C et reprennent en partie sa logique. C offre au développeur une marge de contrôle importante sur la machine (notamment sur la gestion de la mémoire) et est de ce fait utilisé pour réaliser les « fondations » (compilateurs, interpréteurs.
Tri fusionEn informatique, le tri fusion, ou tri dichotomique, est un algorithme de tri par comparaison stable. Sa complexité temporelle pour une entrée de taille n est de l'ordre de n log n, ce qui est asymptotiquement optimal. Ce tri est basé sur la technique algorithmique diviser pour régner. L'opération principale de l'algorithme est la fusion, qui consiste à réunir deux listes triées en une seule. L'efficacité de l'algorithme vient du fait que deux listes triées peuvent être fusionnées en temps linéaire.
C SharpC# (C sharp en anglais britannique) est un langage de programmation orientée objet, commercialisé par Microsoft depuis 2002 et destiné à développer sur la plateforme Microsoft .NET. Il est dérivé du C++ et très proche du Java dont il reprend la syntaxe générale ainsi que les concepts, y ajoutant des notions telles que la surcharge des opérateurs, les et les délégués. Il est utilisé notamment pour développer des applications web sur la plateforme ASP.NET, ainsi que des jeux vidéo avec le moteur de jeux Unity.
Standard Template LibraryLa Standard Template Library (STL) est une bibliothèque C++, normalisée par l'ISO (document ISO/CEI 14882) et mise en œuvre à l'aide des templates. Cette bibliothèque fournit : un ensemble de classes conteneurs, telles que les vecteurs (vector), les tableaux associatifs (map), les listes chaînées (list), qui peuvent être utilisées pour contenir n'importe quel type de données à condition qu'il supporte certaines opérations comme la copie et l'assignation. une abstraction des pointeurs : les itérateurs.
Pseudo-aléatoirethumb|Représentation graphique d'une suite pseudoaléatoire. Le terme pseudo-aléatoire est utilisé en mathématiques et en informatique pour désigner une suite de nombres qui s'approche d'un aléa statistiquement parfait. Les procédés algorithmiques utilisés pour la créer et les sources employées font que la suite ne peut être complètement considérée comme aléatoire. La majorité des nombres pseudo-aléatoires en informatique sont créés à partir d'algorithmes qui produisent une séquence de nombres présentant certaines propriétés du hasard.
Table de nombres aléatoiresUne table de nombres aléatoires est un ensemble de nombres disposés en rangées et en colonnes qui ne présentent aucun lien statistique prédictible, quelle que soit la façon dont on les extrait de la table. Les tables de nombres aléatoires, ensembles de nombres disposés en rangées et en colonnes, ne comprennent que des nombres idéalement créés à l'aide de méthodes stochastiques (ou aléatoires).
Tri par paquetsLe tri par paquets est un algorithme de tri qui fonctionne sur des nombres réels appartenant à un intervalle borné fixé à l'avance. Le principe de ce tri consiste à partitionner régulièrement l'intervalle d'entrée en autant de sous-intervalles que l'entrée comporte d'éléments à trier, et à distribuer les données selon leur valeurs en autant de paquets correspondant à ces sous-intervalles. Les paquets sont alors triés séparément à l'aide d'un autre algorithme de tri.
Variable aléatoirevignette|La valeur d’un dé après un lancer est une variable aléatoire comprise entre 1 et 6. En théorie des probabilités, une variable aléatoire est une variable dont la valeur est déterminée après la réalisation d’un phénomène, expérience ou événement, aléatoire. En voici des exemples : la valeur d’un dé entre 1 et 6 ; le côté de la pièce dans un pile ou face ; le nombre de voitures en attente dans la 2e file d’un télépéage autoroutier ; le jour de semaine de naissance de la prochaine personne que vous rencontrez ; le temps d’attente dans la queue du cinéma ; le poids de la part de tomme que le fromager vous coupe quand vous lui en demandez un quart ; etc.
Tri à bullesvignette|Visualisation statique du tri : les étapes vont de gauche à droite. À chaque étape une permutation est faite. La couleur la plus foncée a le plus de valeur et trouve sa place définitive (en bas) en premier. Le tri à bulles ou tri par propagation est un algorithme de tri. Il consiste à comparer répétitivement les éléments consécutifs d'un tableau, et à les permuter lorsqu'ils sont mal triés. Il doit son nom au fait qu'il déplace rapidement les plus grands éléments en fin de tableau, comme des bulles d'air qui remonteraient rapidement à la surface d'un liquide.
Tri par baseEn algorithmique le tri par base, ou tri radix de radix sort en anglais, est un algorithme de tri, utilisé pour ordonner des éléments identifiés par une clef unique. Chaque clef est une chaîne de caractères ou un nombre que le tri par base trie selon l'ordre lexicographique. Cet algorithme a besoin d'être couplé avec un ou plusieurs algorithmes de tri stable. Le principe de l'algorithme est le suivant : On considère le chiffre le moins significatif de chaque clef. On trie la liste des éléments selon ce chiffre avec un algorithme de tri stable.
Tri par insertionEn informatique, le tri par insertion est un algorithme de tri classique. La plupart des personnes l'utilisent naturellement pour trier des cartes à jouer. En général, le tri par insertion est beaucoup plus lent que d'autres algorithmes comme le tri rapide (ou quicksort) et le tri fusion pour traiter de grandes séquences, car sa complexité asymptotique est quadratique. Le tri par insertion est cependant considéré comme l'algorithme le plus efficace sur des entrées de petite taille.
Générateur de nombres pseudo-aléatoiresUn générateur de nombres pseudo-aléatoires, pseudorandom number generator (PRNG) en anglais, est un algorithme qui génère une séquence de nombres présentant certaines propriétés du hasard. Par exemple, les nombres sont supposés être suffisamment indépendants les uns des autres, et il est potentiellement difficile de repérer des groupes de nombres qui suivent une certaine règle (comportements de groupe). Un algorithme déterministe génère des suites de nombres qui ne peuvent pas satisfaire complètement les critères mathématiques qualifiant les suites aléatoires.
Programmation orientée objetLa programmation orientée objet (POO), ou programmation par objet, est un paradigme de programmation informatique. Elle consiste en la définition et l'interaction de briques logicielles appelées objets ; un objet représente un concept, une idée ou toute entité du monde physique, comme une voiture, une personne ou encore une page d'un livre. Il possède une structure interne et un comportement, et il sait interagir avec ses pairs.
/dev/randomDans les systèmes d'exploitation de type Unix, /dev/random est un fichier spécial qui sert de générateur de nombres aléatoires (ou éventuellement de générateur de nombres pseudo-aléatoires). Il utilise comme source d'aléa certaines données de l'environnement recueillies auprès de pilotes de périphériques et d'autres sources, et les traite à l'aide de fonctions de hachage cryptographiques. La lecture du fichier est bloquée quand l'activité du système (entropie) n'est pas suffisante.
C++C++ est un langage de programmation compilé permettant la programmation sous de multiples paradigmes, dont la programmation procédurale, la programmation orientée objet et la programmation générique. Ses bonnes performances, et sa compatibilité avec le C en font un des langages de programmation les plus utilisés dans les applications où la performance est critique. Créé initialement par Bjarne Stroustrup dans les années 1980, le langage C++ est aujourd'hui normalisé par l'ISO.