Trouver un chiffre manquant dans une suite

Résolu/Fermé
tpk211 - 26 nov. 2008 à 14:58
Sacabouffe Messages postés 9427 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 - 26 nov. 2008 à 17:27
Bonjour,

J'ai une table avec une valeur numerique (1,2,3,4,5 etc........) je voudrais savoir comment on peut trouver le ou les chiffres manquants?

Ex: Numero ....... 25455 - 25456 - 25457 - 25459 - 25460 ........ le 25458 est manquant pas facile a trouver quand dans une table on a 8500000 lignes.....
Merci pour vos lumieres

Thierry

1 réponse

Sacabouffe Messages postés 9427 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 1 832
26 nov. 2008 à 17:27
Salut
Apparemment ta table est organisée dans l'ordre croissant.
Du coup, t'as plusieurs possibilités, tu peux faire une boucle sur les lignes en incrémentant une valeur à chaque ligne et tant que la ligne correspond pas à la valeur.
Un exemple :
1
2
3
7
8
Ligne 1 égale à 1 -> oui
Ligne 2 égale à 2 -> oui
Ligne 3 égale à 3 -> oui
Ligne 4 égale à 4 -> non -> 4 manque à la table
Ligne 4 égale à 5 -> non -> 5 manque à la table
Ligne 4 égale à 6 -> non -> 6 manque à la table
Ligne 5 égale à 7 -> oui
Ligne 6 égale à 8 -> oui
Etc...

Ça donne un algorithme du genre :
incrément=1
Pour valeur dans table
Tant que valeur <> incrément
Ajouter incrément à la table des valeurs manquantes
incrément <- incrément + 1
Fin Tant que
incrément <- incrément + 1
Fin Pour
Comme autre solution, tu peux faire la différence entre deux valeurs consécutives, ça te donne le nombre de valeurs manquantes + 1, s'il y en a 5 par exemple, celles qui manquent, sont la plus petite des deux valeurs consécutives à laquelle t'ajoutes 1, 2, 3 ou 4.

Bonne soirée
4