Création
d'entreprise
Posez votre question Signaler

[Perl] Le + petit 'disponible' d'une liste [Résolu]

KuKrApOk59 428Messages postés 27 décembre 2007Date d'inscription 26 janvier 2011Dernière intervention - Dernière réponse le 3 juil. 2010 à 11:31
Bonjour,
J'ai actuellement un petit souci
Je m'explique :
J'ai une @liste qui contient :
1 2 3 4 6 8 11 15
J'aurais voulu savoir comment je pouvais m'y prendre pour trouver que '5' est le premier chiffre qui manque à la liste
Si vous aviez une idée pour m'éclaircir sur le sujet ...
Lire la suite 

[Perl] Le + petit 'disponible' d'une liste »

2 réponses
Réponse
+0
moins plus
Je suis en train de me creuser le citron a partir d'un script bash qui le fait
J'en fait un bout de perl fonctionnel, et je le posterai ici ...

On sait jamais, ca peut servir :p
Ajouter un commentaire
Réponse
+0
moins plus
Plop,

J'ai fini par utiliser un bout de perl présent dans le script adduser de ma distrib
Finalement, l'objectif est le même

Ce qui donne :
# Pour recuperer le premier nombre manquant d'une liste
#######################################################
sub first_avail_id {
    my ($min, $max, @ids) = @_;
    @ids = sort {$a <=> $b} @ids;
    while ($min <= $max) {
        return $min if ($min <  $ids[0] || @ids==0);
        shift @ids  if ($min >  $ids[0]);
        $min++      if ($min == $ids[0]);
    }

    -1;                         # nothing available
}


@ids est la liste que l'on veut parser
$min, le plus petit élément de @ids
$max, le plus grand élément de @ids
Ajouter un commentaire
Ce document intitulé « [Perl] Le + petit 'disponible' d'une liste » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?