Lipsum.dev

Maths et applications, avec les mains et avec du code 💻
Suivre sur Twitter

Automates, expressions régulières et arithmétique de Presburger

05 janvier 2024 — Automates, Langages, Logique

L'étude des automates finis constitue une branche de l'informatique théorique dont nous présentons ici une application classique — les expressions régulières — et une plus exotique — la décision des formules de l'arithmétique de Presburger.

Théorie des corps, continu et discret

11 novembre 2023 — Logique, Théorie des corps, Transfert

Dans cet article, nous faisons appel à des considérations du domaine de la logique pour montrer comment certains résultats exprimés dans la théorie des corps peuvent se transférer d'un cadre continu à un cadre discret (et vice versa).

Qu'est-ce qu'un assistant de preuve ?

24 septembre 2023 — Logique, Lean

Un assistant de preuve est un logiciel qui permet de saisir un énoncé mathématique, une preuve de cet énoncé, et de vérifier automatiquement la validité de cette preuve. Nous nous proposons ici d'en exposer les grands principes, en utilisant Lean.

Autour des harmoniques sphériques

21 mai 2023 — Harmoniques sphériques, Physique, 3D

Les harmoniques sphériques permettent de décomposer les fonctions définies sur une sphère, d'une façon similaire à la décomposition en série de Fourier des fonctions définies sur un cercle. Nous évoquons ici quelques-unes de leurs applications, en informatique et en physique.

Logique, arithmétique de Peano et incomplétude

26 mars 2023 — Logique, Incomplétude, Gödel

Le but de cet article est d'introduire, à l'aide de quelques exemples de théories arithmétiques, la notion d'incomplétude.
Nous évoquerons aussi le premier théorème d'incomplétude de Gödel, que nous tâcherons d'éclairer par différents exemples.

Compression JPEG et composantes principales

31 janvier 2023 — Transformée en cosinus, PCA

La compression JPEG repose notamment sur la transformée en cosinus discrète, qui correspond à un changement de base orthogonale. Sous certaines conditions, cette transformée possède des propriétés de compaction qui permettent d'approximer le signal source avec un nombre réduit de coefficients.

Transformée de Fourier discrète et multiplications

27 décembre 2022 — FFT, Python

La transformée de Fourier discrète est un cas particulier de transformation de Fourier adapté à des séquences finies de nombres. L'algorithme de transformation rapide (FFT) permet de la calculer rapidement et est utilisé notamment dans des algorithmes de multiplication.

La géométrie projective, d'Urbino à OpenGL

30 juillet 2021

Le fait que les lignes parallèles dans le champ de vision d'un observateur « convergent » vers un point de fuite est l'une des découvertes de la Renaissance italienne.
Cette observation, très utilisée dans le rendu de scènes 3D, se formalise dans le cadre de la géométrie projective que nous abordons ici.

Nombres premiers, Miller-Rabin et OpenSSL

27 juin 2021 — Cryptographie, Python

La génération de grands nombres premiers est une étape cruciale dans la mise en oeuvre de certains protocoles cryptographiques, notamment RSA.
Nous présentons ici le test de Miller-Rabin et quelques subtilités d'implémentation, en nous appuyant notamment sur le code source d'OpenSSL.

Groupes, logarithmes et confidentialité persistante

26 novembre 2020 — Cryptographie, Go, Diffie-Hellman

L'un des premiers mécanismes de cryptographie asymétrique fut proposé en 1976 par Diffie et Hellman et joue un rôle central dans TLS.
Il repose notamment sur l'utilisation de groupes cycliques.
Nous présentons ici son fonctionnement et différentes implémentations à l'aide du package crypto du langage Go.

Commutativité, Quaternions et WebGL

18 septembre 2020

Les rotations dans le plan sont liées à la multiplication des complexes — des nombres à deux composantes.
Dans l'espace à trois dimensions, les rotations sont plus subtiles. Des nombres à quatre composantes, les quaternions, sont souvent utilisés pour les représenter dans les moteurs 3D.

Histoires de surfaces, de Gauss à OpenStreetMap

28 août 2020

L'étude des surfaces publiée par Gauss au début du XIXème siècle et son fameux Theorema Egregium ont de nombreuses conséquences, notamment en cartographie. Nous présentons ici le formalisme de ces surfaces qui permettent de comprendre certaines représentations cartographiques comme la projection de Mercator.

Polynômes, extensions de corps et QR codes

02 mai 2020 — Python

Les polynômes font partie de ces objets mathématiques omniprésents.
Nous allons voir comment ils permettent, à partir de certains ensembles de nombres (rationnels, réels, etc.) d'en construire de nouveaux (comme les nombres complexes).
Ce même genre de mécanisme permet aussi de construire les corps finis, qui sont utilisés en informatique (codes correcteurs d'erreur, cryptographie, etc.).

Arithmétique modulaire, RSA et clefs privées

27 avril 2020 — Cryptographie, Python

Dans cette entrée, je vous propose d'aborder le calcul « modulo n » et quelques résultats d'arithmétique un peu plus avancés (théorème d'Euler).
Ceci nous permettra de comprendre le chiffrement RSA, et d'utiliser OpenSSL pour décortiquer une clef privée.

De la construction des réels à la norme IEEE 754

11 avril 2020 — Introduction, Python

Connaissez-vous le module fractions de Python ? Je l'utilise ici pour présenter une construction des nombres réels.
Nous verrons également comment les ordinateurs manipulent ces nombres et pourquoi 0.1 + 0.2 ne donne pas toujours le résultat attendu...

Arithmétique des entiers, base64 et algorithme d'Euclide

11 avril 2020 — Introduction, Python

Pour cette première entrée sur le thème des nombres avec Python, nous allons parler d'entiers, de binaire, de base64, de nombres premiers et poser les bases d'arithmétique qui nous serviront ensuite.