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

Prolog Discussion :

Contrainte sur la somme des entiers d'une liste


Sujet :

Prolog

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 15
    Points : 7
    Points
    7
    Par défaut Contrainte sur la somme des entiers d'une liste
    Bonjour à tous, je consulte ce forum depuis quelques semaines déjà et je trouve le courage aujourd'hui de m'inscrire pour vous poser une question.
    Je souhaiterais poser une contrainte sur la somme des entiers d'une liste avec GNU Prolog, l'équivalent avec SWI-Prolog avec la librairie clpfd de ceci :
    sum(L, #=, 200)
    J'ai eu beau cherché à droite à gauche je n'ai rien trouvé sur Internet. Je vous remercie d'avance.

    PS : le choix du solveur m'a été imposé donc je ne peux pas en changer.

  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
    Il faut juste écrire la procédure de calcul :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    test(L) :-
    	length(L, 5),
    	fd_domain(L, 10, 100),
    	calcule_somme(L, S),
    	S #= 100,
    	fd_labeling(L).
     
    calcule_somme(L, S) :-
    	V #= 0,
    	calcule_somme(L, V, S).
     
    calcule_somme([], S, S).
     
    calcule_somme([H | T], V, S) :-
    	V1 #= V + H,
    	calcule_somme(T, V1, S).
    "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
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Simple, propre et clair. Efficacité Trap D.
    Je te remercie pour la réponse rapide, problème résolu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Somme des valeurs d'une liste
    Par antho84 dans le forum Excel
    Réponses: 1
    Dernier message: 06/12/2014, 05h08
  2. Une énigme ? Trigons (somme des entiers de 1 à n) et cycles
    Par cyberlp dans le forum Mathématiques
    Réponses: 6
    Dernier message: 26/06/2014, 11h47
  3. [Débutant] somme des entiers d'une matrice
    Par amal1410 dans le forum MATLAB
    Réponses: 1
    Dernier message: 06/02/2013, 19h49
  4. [A-00] Somme des valeurs d'une liste
    Par Slici dans le forum VBA Access
    Réponses: 2
    Dernier message: 27/02/2009, 12h37
  5. fonction sur la somme des valeurs issues d'une requete
    Par iam dans le forum Bases de données
    Réponses: 5
    Dernier message: 15/06/2006, 22h35

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