Liste de chaînes YouTube dédiées à C++
lance un processus qui restera actif après la déconnexion de l'utilisateur l'ayant initié.
Ce minuscule script Perl d'une seule instruction ( print str =~ regex ? no : yes ) indique par YES ou NO si le l'entier passé en argument sur la ligne de commande est un nombre premier :
#!/usr/bin/perl
#usage: isPrime.pl <entier>
print (('@' x $ARGV[0]) =~ /^.?$|^(..+?)\1+$/ ? "NO\n" : "YES\n");
![]() |
Spirale d'Ulam |
Le cœur du script est une expression régulière qui matche quand l'argument n'est pas un nombre premier. Cette expression régulière s'applique à une chaîne de caractères identiques et de longueur égale à la valeur de l'argument.
La chaîne contenant autant de @ qu'indiqué par l'argument est construite avec ('@' x $ARGV[0]).
Exemple: isPrime.pl 6 travaille sur la chaîne "@@@@@@"
La première partie de la regex ^.?$ détermine s'il y a 0 ou 1 caractère dans la chaîne, autrement dit si le nombre à tester est 0 ou 1. Si c'est le cas le nombre n'est pas premier (affiche NO).
La deuxième partie de la regex ^(..+?)\1+$ détermine s'il est possible de décomposer la chaîne en la répétition d'une sous chaîne d'au moins 2 caractères. Si c'est le cas c'est que la longueur de la chaîne (donc la valeur de l'argument) peut s’écrire L * N, (avec L>0 et N>1) et donc le nombre n'est pas premier (affiche NO).
Exemples :
La classique boucle de cherche les diviseurs d'un nombre est prise en charge par la recherche itérative d'une solution dans le moteur d'expressions régulières. Bien sur la méthode n'est ni efficace en place mémoire ni en temps de calcul, mais elle est originale.
Vous trouverez une liste des 50000 premiers nombres premiers ici.
Note: L'image utilisée pour illustrer ce post est la spirale d'Ulam qui représente la position des nombres premiers sur une spirale. Les lignes droites semblent indiquer une certaine organisation (un pattern) des nombres premiers...intriguant...
A l’opposé de ces livres de circonstance je vous présente : « The Art of Computer Programming » (TAoCP) de Donald Knuth, Professeur à Standford. Un ouvrage rédigé par un seul auteur sur toute une vie, sur un seul sujet : l’Algorithmique. La conception de l’ouvrage n’a pas été linaire, loin de là, et comme tout projet il a subit d’énormes retards et changements de direction.
Notes : Vous connaissez l’histoire de Git ? Et bien c’est un peu la même chose qui s’est passé pendant la rédaction/édition de The Art of Computer Programming (TAoCP). En 1973, à l’occasion de la seconde édition du volume 2, Knuth était insatisfait des systèmes de composition de page de l’époque. Il décide de faire une pause (de 1974 à 1996 !) pour concevoir l’outil qui lui convient pour rédiger son ouvrage (Tout comme Linus Torval écrit Git pour gérer le code du kernel Linux). Le résultat est metafont et TeX qui sont toujours utilisés en 2025 au travers de LaTeX et TeX Live
Dans sa forme actuelle (déc 2024) TAoCP est constitué de 5 volumes + un fascicule :
Volume 1: Fundamental Algorithms (1968, 3éme Édition 1997)
Volume 2: Seminumerical Algorithms (1969, 3éme Édition 1997)
Volume 3: Sorting and Searching (1973, 2éme Édition 1998)
Volume 4A: Combinatorial Algorithms, Part 1 (2011)
Volume 4B: Combinatorial Algorithms, Part 2 (2023)
+
Fascicule 7, Constraint Satisfaction (2025) pour un futur volume 4C ?...
Les Volume 4A et 4B ont d’abord été publié (dans le désordre) sous forme de fascicules:
En prévision :
Volume 5: Syntactic algorithm,
Volume 6: The Theory of context-free languages
Volume 7: Compiler techniques
Ce dernier volume sur les compilateurs est en fait la raison initiale de tout ce travail. En effet, en 1962 Knuth travaillait sur des compilateurs Algol et Fortran et avait entamé l’écriture d’un livre sur ce sujet, mais il avait jugé qu’il fallait d’abord introduire des concepts fondamentaux … Introduction qui a donné les 5 volumes actuels !
Les exemples ne sont pas écrits en C, ni Pascal, ni C++, ni Java, ni Rust. Mais avec MIX pour les 3 premiers volumes puis avec MMIX. C'est le langage d’une machine virtuelle avec une architecture RISC (ben oui, en 1968 on savait déjà ce qu’était une VM)
![]() |
Logo Opinel |
Le dimanche nous allions au marché sur la place de l’imposante cathédrale St Cécile. A cette époque les centres commerciaux et leurs galeries commerciales, avec le cordonnier qui fait des clefs, n’existaient pas. Certains artisans faisaient encore du porte à porte comme le rémouleur ou le rempailleur mais la plupart avaient une échoppe face à la cathédrale et autour des halles. Un jour que nous portions des chaussures à réparer au cordonnier (à cette époque on ne jetait pas), avant d’entrer dans la boutique, mon grand-père me dit en montant le cordonnier juste derrière la vitre en train de travailler un morceau de cuir :
- Regarde, avec le dos de la lame de son Opinel il marque le cuir qui lui permet de gagner son pain et avec l’autre côté il coupe le pain ainsi gagné.
Pour moi qui n’avais pas encore dix ans c’était magique : On pouvait vivre avec un seul outil ! Je comprenais mieux pourquoi l’Opinel dans la poche de mon grand-père était si précieux.