IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scheme Discussion :

Recherche d'algorithme sur les listes


Sujet :

Scheme

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    203
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 203
    Points : 66
    Points
    66
    Par défaut Recherche d'algorithme sur les listes
    Bonsoir , je cherche un algorithme le plus simple possible , pour accéder aux n derniers éléments d'une liste et malgré des heures de recherche je ne trouve pas .

    Exemple , si j'ai la liste (5 6 8 9 2 3 4 5 6) et que je veux rendre les 2 derniers je ne vois pas comment faire . Je souhaite utiliser une récursivité , où les cas de base sont :

    si n = 0 , alors on rend la liste entière
    si la liste est vide , on rend la liste vide

    Problème : comment avec n = 2 ( donc 2 récursions ) accéder aux 2 derniers éléments , quelqu'un aurait il une piste à me proposer ?

    merci de votre aide .

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Tu peux faire un reverse de la liste des deux premiers éléments de la liste initiale inversée !
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par shaku Voir le message
    Bonsoir , je cherche un algorithme le plus simple possible , pour accéder aux n derniers éléments d'une liste et malgré des heures de recherche je ne trouve pas .

    Exemple , si j'ai la liste (5 6 8 9 2 3 4 5 6) et que je veux rendre les 2 derniers je ne vois pas comment faire . Je souhaite utiliser une récursivité , où les cas de base sont :

    si n = 0 , alors on rend la liste entière
    si la liste est vide , on rend la liste vide

    Problème : comment avec n = 2 ( donc 2 récursions ) accéder aux 2 derniers éléments , quelqu'un aurait il une piste à me proposer ?

    merci de votre aide .
    Comment ferais-tu à la main si tu avais une très longue liste. C'est ça le point de départ.

    Ensuite n=2 ne signifie pas 2 récursions. Ou alors je n'ai pas compris.

    Finalement ton cas si n=0 est bizarre. Mais c'est vrai qu'il manque le pas d'induction. Donc forcément, on sait pas tout

    Je suppose que c'est une question de devoirs. La solution de trap D en est une, mais elle t'oblige quand même à comprendre la récursivité. Allez, au travail

  4. #4
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Comment ferais-tu à la main si tu avais une très longue liste
    écrite sur un papier et que tu avais deux bouts de bois. (petit indice)

    Voici une solution écrite dans un tout autre langage, vu tes hésitations je doute que cela t'aide beaucoup (tu ne connais probablement pas le langage) mais ça ne peut pas faire de mal et ça reste comme référence pour un futur visiteur :
    Code Haskell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    lasts :: Int -> [a] -> [a]
    lasts n xs = go n xs xs
        where go _ xs     []     = xs
              go 0 (_:xs) (_:ys) = go 0 xs ys
              go k xs     (_:ys) = go (k-1) xs ys
    A noter que cette solution renvoie les n derniers éléments de la liste si celle-ci est plus longue que n, sinon elle renvoie simplement la liste intégrale.

    --
    Jedaï

Discussions similaires

  1. Recherche sur les List<T>
    Par pc152 dans le forum C#
    Réponses: 4
    Dernier message: 26/02/2007, 09h38
  2. Recherche fonction sur les listes
    Par becks dans le forum Général Python
    Réponses: 5
    Dernier message: 05/05/2006, 16h11
  3. Précisions sur les listes
    Par Virgile59 dans le forum Access
    Réponses: 1
    Dernier message: 07/02/2006, 21h20
  4. Recherche de documentation sur les automates Siemens avec Delphi
    Par ****** dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 22/10/2005, 22h25
  5. Recherche de doc sur les Design pattern
    Par MicroPuce dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 09/05/2005, 15h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo