Divertissements mathématiques et informatiques #
Ces pages ne sont plus maintenues. Il s’agit juste d’une copie du site Web associé à l’ouvrage Divertissements mathématiques et informatiques paru en 2011.
Cette page Web est associée à l’ouvrage Divertissements mathématiques et informatiques (Auteur : Laurent Signac, 176 pages), paru en octobre 2011 aux éditions H&K.
![]()
Quatrième de couverture #
Les divertissements proposés dans ces pages sont à la rencontre des jeux et des problèmes. Simples à comprendre, n’utilisant que des mathématiques élémentaires, mais difficiles à résoudre, ils réjouiront les esprits curieux. De l’aventure de Flavius Josèphe à la stéganographie, vous découvrirez un panorama vivant de grands thèmes mathématiques. Vous apprendrez notamment à :
- chiffrer et déchiffrer des messages ;
- dessiner des fractales ;
- rechercher des nombres aux propriétés étonnantes.
Tout au long de l’ouvrage, la pratique est alliée à la théorie grâce à l’ordinateur. Des codes complets vous sont fournis afin d’expérimenter vous-même à travers la machine. Aucune connaissance en programmation n’est requise pour aborder ce livre, tout y est expliqué pas à pas.
Pages d’exemple #
Quelques pages de l’ouvrage sont téléchargeables librement :
- Avant propos, table des matières, début de chaque chapitre, index
- Annexes sur l’installation de Ruby
Vous trouverez sur ces pages des liens, du code, des images, et des compléments à l’ouvrage…
Erratum #
page 30 : Stephen Ulam => Stanislaw Ulam
Il s’agit bien de Stanislaw Ulam, le même que celui de la spirale aussi mentionnée dans l’ouvrage.
Mise en route, installation de Ruby #
Depuis 2011… les versions de Ruby ont bien entendu évolué. La version actuelle est 3.x. Si vous souhaitez l’installer, reportez vous au site officiel pour avoir des informations à jour : Site officiel Ruby
- Tout système : JRuby for the Web (exécution dans le navigateur sous réserve que Java soit installé et fonctionnel)
- Windows
- Mac OS X
Ruby est installé en standard avec MacOS X. La version 1.8.2, livrée avec Tiger est suffisante pour commencer à programmer. Un changement de version sera nécessaire pour la partie graphique. - Linux
Ruby, des éditeurs de code, les bibliothèques nécessaires sont standard pour la plupart des distributions Linux. Reportez vous aux annexes de l’ouvrage pour obtenir des informations complémentaires. - Bibliographie Ruby
Première partie : Avec des nombres #
Chapitre 1 : Problème de Josèphe #
Solution :
- Pb de Josèphe, Chats et souris (RB/josephe.rb)
Liens :
- Henry Ernest Dudeney, Amusements in Mathematics, Projet Gutenberg
- Claude Gaspar Bachet, Problèmes plaisants et délectables, qui se font par les nombres
- Édouard Lucas, Arithmétique amusante
- Flavius Josèphe, La Guerre des Juifs (trad. Harmand)
- Pseudo-Hégésippe, La Guerre des Juifs
Chapitre 2 : Suite de Collatz #
Solution :
- Suite de Collatz (RB/syracuse.rb)
Liens :
- Tomàs Oliveira e Silva, Page Web sur la suite 3x+1
- Shalom Eliahou, Le problème 3n+1 : élémentaire mais redoutable (I) Images des Mathématiques, CNRS, 2011. En ligne, URL : http://images.math.cnrs.fr/Le-probleme-3n-1-elementaire-mais.html
- Shalom Eliahou, « Le problème 3n+1 : cycles de longueur 5 (II) » Images des Mathématiques, CNRS, 2011. En ligne, URL : http://images.math.cnrs.fr/Le-probleme-3n-1-cycles-de.html
Chapitre 3 : Suites aliquotes #
Module de calcul des nombres premiers : LsPrime.rb.
Solution :
- Suites aliquotes (RB/aliquotes.rb)
Deuxième partie : Avec des lettres #
Chapitre 4 : Substitutions monoalphabétiques #
Premier cryptogramme ⬇
RGPRC RAQNA GQVGY RTENA QYNFB YHGVB AARFG PREGN VARZR AGCNF
NHFFV QVSSV PVYRD HBAFR YVZNT VAREN VGNHC ERZVR EPBHC QBRVY
PRFPN ENPGR ERFPB ZZRPU NPHAC BHEEN VGYRQ RIVAR ESNPV YRZRA
GSBEZ RAGHA PUVSS ERPRF GNQVE RDHVY FCERF RAGRA GHAFR AF
Deuxième cryptogramme ⬇
NFBIW WHQAH QYIFV BQYBM QWVBB WXHQI XUOHX IEUIF
BWBDE IMBFU OBYFU OUNII BFFBM UXIFN XWBYO UFFB
Liens :
- [Suétone,Vie des douze Césars](https://fr.wikisource.org/wiki/Vie des douze Césars/César)
- Dion Cassius, Histoire romaine (livre XL)
Solutions :
- Module de cryptographie (
cryptographie.rb
) (RB/cryptographie.rb) - Script de résolution du premier cryptogramme (RB/script_crypto1.rb)
- Module de dénombrement (
denombrement.rb
) (RB/denombrement.rb) - Script de résolution du second cryptogramme (RB/script_crypto2.rb)
Compléments :
- Compléments au chapitre 4 (fichier PDF)
Chapitre 6 : Analyse fréquentielle #
Troisième cryptogramme ⬇
SHMHM WZORO ZOBNL OLZFM ODDOL URTDF MOPHR DOZHF UOODU NLLNL
HTGMO FLOSO MDOMR OBFOZ OLURO STORO LUNGO LIFZT BRONF BORLH
IOZNL OWHMI OWOZZ OIFPN FQDTD ROTZI OWHFB RTDFM OLHRD OIOSN
WFZOA FTPNT LNTDN ZHOTZ ZOPPO DIFMO DNWJO IOMWR OWOUO MINMD
OMVRO GNRIN MDIOU ROLHM ITLDT MGFNT DAFOZ AFOLW NRNWD OROLN
IOSTO PPNWO LSHMH MWZOW HSURT DAFOZ NODNT DZOUH TMDTM DOROL
LNMDT ZLNWJ NRMNI HMWLF RZNSN WFZOO DLNGR HLLOZ HFUON TINMD
TZPTM TDUNR ROWHM MNTDR OZOLL TGMOL AFOBH TWTWN RNWDO ROLRF
MTAFO LAFTZ ZFDLN MLJOL TDORN RMOLN EMFLL OSLOW RTNDT ZIFMD
HMDRT HSUJN MD
Liens :
Solutions :
- Module de cryptographie (cryptographie.rb) (RB/cryptographie.rb)
- Script de résolution du troisième cryptogramme (RB/script_crypto3.rb)
Troisième partie : Avec des images #
Chapitre 7 : Spirale d’Ulam #
Solution :
- Spirale d’Ulam (RB/ulam.rb)
Liens :
Chapitre 8 : Fractales de Julia #
Quelques images (cliquez pour voir en plus grand) :
Cliquez sur les images pour les voir en plus grand.
Solution :
- Tracé de l’ensemble de Julia (RB/julia.rb)
- Tracé de l’ensemble de Julia (version «compléments») (RB/juliaSol.rb)
Compléments :
- Compléments au chapitre 7 (fichier PDF)
Liens :
La page de Paul Bourke a changé d’URL depuis la rédaction de Dmi. L’Url ci-dessous a été mise à jour.
- Page (en anglais) de Paul Bourke
- Ensembles de Julia sur Wikipedia
- Ensembles de Mandelbrot sur Wikipedia
Chapitre 9 : Stéganographie #
Vous pouvez cliquer sur les images pour les voir dans leur taille normale ou pour les enregistrer
Images à télécharger :
Voici les deux images de départ pour tester le programme de stéganographie (cliquez sur l’image pour la voir en taille réelle) :
Résultats obtenus :
Une fois la photo des crocus cachée dans celle du papillon, nous obtenons :
De cette image peuvent être extraits les crocus :
Liens :
En suivant ce lien vous trouverez une page évoquant le tableau de Bruegel : La Tour de Babel. Que cache cette tour ?
Annexes #
Installation de Ruby #
Fichier de test (loveit.rb) ⬇
#!/usr/bin/ruby
def loveit(n)
a=["un peu", "beaucoup","passionnément","à la folie","pas du tout"]
0.upto(n-1) {|i| puts "J'aime Ruby : "+a[i%5] }
puts "Non... je plaisante... " if (n-1)%5==4
end
loveit(19)
puts "----------------"
loveit(20)
Liens :
- www.ruby-lang.org : Page web officielle de Ruby
- rubyinstaller.org : Installer Ruby pour Windows
- rubyforge.org : Dépot de logiciels relatifs à Ruby