Trouver un chiffre manquant dans une suite

Résolu
tpk211 -  
Sacabouffe Messages postés 9427 Date d'inscription   Statut Membre Dernière intervention   -
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
Configuration: Windows 2000
Internet Explorer 6.0

1 réponse

  1. Sacabouffe Messages postés 9427 Date d'inscription   Statut Membre Dernière intervention   1 863
     
    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