Comme vous l’aurez compris en observant ce magnifique diagramme de Hass, le thème de ce nouvel M.P.O. vous propose de s'attarder sur l’étude des nombres de Hamming. Les nombres de Hamming ont plusieurs dénominations ; en fonction de leur champ d’application se sont des nombres moches , des nombres cinq-mous ou des glyphes babyloniens.
Les mathèmatiques les définissent comme étant les entiers de la forme , c'est-à-dire les entiers dont les seuls diviseurs premiers sont 2, 3 ou 5.
Les 20 premiers Nombre de Hamming sont : 1 2 3 4 5 6 8 9 10 12 15 16 18 20 24 25 27 30 32 36
Comme Dijkstra, Edsger W. l’avait fait en 1976 dans son ouvrage A Discipline of Programming au chapitre n°17 intitulé "An exercise attributed to R. W. Hamming" ( Prentice-Hall, pp. 129–134, ISBN 978-0132158718 ), je vous propose quelque exercice pour vos Pockets et Micros préférés.
Evidemment, ce M.P.O. est en relation directe avec le M.R.A. n°2 qui partage le même thème mais pas le même objectif.
L’objectif de ce M.P.O. est d’écrire un code pour votre calculette ou micro qui permet de vérifier qu’un entier donné N est effectivement un nombre de Hamming.
Vous pourrez pour cela mettre en œuvre tout algorithme de votre choix et de votre convenance qui utilisera ou non les multiples propriétés des Nombre de Hamming.
Vous pourriez utiliser, par exemple, l’une ou l’autre des méthodes suivantes:
- décomposer le nombre N en facteur premiers et vérfier qu’il n’en a pas d’autres que 2,3 et 5 ;
- rechercher par récurrence l’entier N dans l’ensemble H des nombre de Hamming, sachant que si H est un ensemble composé uniquement de nombres de Hamming, alors 2.H, 3.H et 5.H sont également des ensembles de nombres de Hamming
- trouver les intonations justes de votre instrument de musique préféré et vérifier que N fait bien partie d’une harmonique de la gamme diatonique,
- retrouver les plaquettes d’argile que votre grand-père archéologue a remmenées d’Asie sumérienne et retrouver N parmi les glyphes mésopotamiens,
- tirer au sort le résultat du programme,… ou utiliser les résultats du MRA n°2
- utiliser un algorithme personnel, mais fort sympathique...
Quelques exemples de nombres à tester :
Code : Tout sélectionner
Ne sont pas des nombres de Hamming:
123 = 1 × 3 × 41
5040 = 1 × 2⁴ × 3² × 5 × 7
337689200 = 1 × 2⁴ × 5² × 31 × 113 × 241
Sont des Nombres de Hamming:
720 = 1 × 2⁴ × 3² × 5
559872000 = 1 × 2¹¹ × 3⁷ × 5³
777600000 = 1 × 2¹⁰ × 3⁵ × 5⁵