suivant: La traduction de l'algorithme
monter: Suite de Hamming
précédent: L'algorithme à l'aide d'un
Table des matières
Index
Supposons que l'on ait trouvé les premiers éléments de cette suite par
exemple : 2,3,4,5.
L'élément suivant est obtenu en multipliant une des cases
précédentes par 2, 3 ou 5.
Le problème c'est d'avoir les éléments suivants dans l'ordre....
Comment trouver lélément suivant de H:=[2,3,4,5] :
on a déja multiplié H[0]=2 par 2 pour obtenir 4 donc
on peut multiplier H[1]=3 par 2 pour obtenir m=6 ou
multiplier H[0]=2 par 3 pour obtenir p=6 ou
multiplier H[0]=2 par 5 pour obtenir q=10.
L'élément suivant est donc 6=min(6,6,10) et H:=[2,3,4,5,6].
Maintenant, on a déja multiplier
H[0]=2 par 2 et par 3 pour obtenir 4 et 6 et
on a déja multiplier H[1]=3 par 2 pour obtenir 6 donc
donc
on peut multiplier H[2]=4 par 2 pour obtenir m=8 ou
multiplier H[1]=3 par 3 pour obtenir p=9 ou
multiplier H[0]=2 par 5 pour obtenir q=10.
L'élément suivant est donc 8=min(8,9,10) et H:=[2,3,4,5,6,8].
Pour que chaque terme de la suite soit multiplié par 2, par 3 et par 5,
il faut donc pévoir 3 indices :
k0 qui sera l'indice de l'élément qu'il faut multiplier par 2,
k1 qui sera l'indice de l'élément qu'il faut multiplier par 3,
k2 qui sera l'indice de l'élément qu'il faut multiplier par 5.
Cela signifie que :
pour tout r<k0 les 2*H[r] ont déjà été rajoutés,
pour tout r<k1 les 3*H[r] ont déjà été rajoutés,
pour tout r<k2 les 5*H[r] ont déjà été rajoutés,
Naturellement k0
k1
k2.
Les 3 candidats pour être l'élément suivant sont donc :
2*H[k0], 3*H[k1], 5*H[k2]
l'un de ces éléments est plus petit que les autres et on le rajoute à la
suite. Il faut alors augmenter l'indice correspondant de 1 : par exemple
si c'est 3*H[k1] qui est le minimum il faut augmenter k1 de 1 et
si 3*H[k1]= 5*H[k2] est le minimum, il faut augmenter k1 et
k2 de 1.
suivant: La traduction de l'algorithme
monter: Suite de Hamming
précédent: L'algorithme à l'aide d'un
Table des matières
Index
Documentation de giac écrite par Renée De Graeve