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 :

Aide exercice prolog


Sujet :

Prolog

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2013
    Messages : 13
    Points : 8
    Points
    8
    Par défaut Aide exercice prolog
    Bonjours à tous la semaine dernière j'ai suivis un cours de intelligence artificiel on a utilisé prolog mais je vous avoue ne rien avoir compris je suis venu sur ce forum pour qu'on puisse m'aider a faire mes exercices. bine sur je n'attends pas de réponse toute faite mais une demarche pour me faire comprendre sans non plus me laisser dans le flou

    Merci d'avance a ceux qui veulent m'aider.

    Une société de jeux éducatifs veut proposer le jeu du carré magique. Dans son principe, un carré magique est une matrice carrée d’entiers positifs, dont la somme des lignes, des colonnes et des diagonales sont identiques. Tous les entiers contenus dans la matrice sont disjoints.
    Exemple : Une solution possible d’un carré magique 3*3 :
    Nom : Capture d’écran 2015-02-04 à 19.14.47.png
Affichages : 656
Taille : 19,9 Ko

    Question 2.1 : Ecrire le prédicat Prolog nommé estPresent d’arité 2 qui vérifie qu’un élément est présent dans une liste. Exemple : ?- estPresent(a,[a,b]).-->true

    Question 2.2 : Ecrire le prédicat Prolog nommé tousDifferents d’arité 1 qui vérifie que tous les éléments d’une liste sont différents. Exemple : ?- tousDifferents([1,2,3]).-->true

    Question 2.3 : Faites le prédicat Prolog nommé tailleList d’arité 2 qui va retourner la taille d’une liste. Exemple : ?- tailleList([1,2,3],R).-->R = 3

    Question 2.4 : Ecrire le prédicat Prolog nommé tailleOk d’arité 2 qui retourne vrai si la taille d’une liste est égale au second argument. Exemple : ?tailleOk([1,2,3,4,5,6,7,8,9],9).-->true

    Question 2.5 : Ecrire le prédicat Prolog nommé afficheMatrice d’arité 3 (Liste, indice Minimum, Indice Maximum) qui affiche tous les éléments d’une liste sous la forme d’une matrice 3*3.
    Exemple : afficheMatrice([1,1,1,1,1,1,1,1,1],1,3)-->
    111
    111
    111

    Question 2.6 : Ecrire un prédicat Prolog nommé carreMagique d’arité 2 (Un resultat, la somme des entiers d’une ligne) qui permet à partir de la liste des neufs entiers : 1, 2, 3, 4, 5, 6, 7, 8, 9 de faire une matrice 3 * 3, dont la somme des lignes est égale à la somme des colonnes et à la somme des diagonales. Votre prédicat doit donner toutes les solutions possibles pour placer dans cette matrice 3*3 les neufs entiers.

    Exemple d’une solution : carreMagique(R,15). R-->
    816
    357
    492

    Question 2.7 : Combien de combinaisons avons-nous pour la matrice 3*3 ? Nommez les combinaisons.

  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
    Bonjour

    Vous le dites vous-même, vous n'attendez pas une solution toute faite, donc ce qui serait bien c'est de montrer ce que vous avez tenté et nous expliquer où vous bloquez.
    Pour le prédicat estPresent/2, il faut se souvenir que comme en Lisp, une liste peut se décrire sous la forme L = [Head | Tail] ou Head est le premier élément de la liste et Tail le reste de la liste
    Par exmple, la liste [1, 2, 3] se décrit sous la forme [H | T] avec H = 1 et T = [2,3].
    Bon courage
    "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
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2013
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    vous avez parfaitement raison si je n'ai pas écrit de réponse c'est par ce que je suis complètement dans le noir total

    pour l'exo 1 si on prend la liste [1,2,3,4,5,6,7,8,9]
    estPresent (2,[1|2,3,4,5,6,7,8,9]). --> true.

  4. #4
    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
    Ce que je voulais vous faire remarquer c'est que si le nombre n'est pas le premier élément d'une liste alors il peut être dans le reste de la liste.
    Donc vous avez deux cas, soit l'element est le premier élément de la liste, soit on relance la recherche avec le reste de la liste (y'a plus qu'à )
    "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

Discussions similaires

  1. Aide exercice Prolog liste
    Par warez29 dans le forum Prolog
    Réponses: 10
    Dernier message: 24/11/2014, 19h54
  2. Aide exercices Java débutant
    Par dalil777 dans le forum Général Java
    Réponses: 9
    Dernier message: 08/02/2008, 22h19
  3. Aide exercice C
    Par lkaiman dans le forum C
    Réponses: 3
    Dernier message: 31/12/2007, 12h57

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