Min 3 entiers

Fermé
ghyzlane b Messages postés 2 Date d'inscription lundi 10 décembre 2012 Statut Membre Dernière intervention 12 décembre 2012 - 10 déc. 2012 à 15:08
ghyzlane b Messages postés 2 Date d'inscription lundi 10 décembre 2012 Statut Membre Dernière intervention 12 décembre 2012 - 12 déc. 2012 à 12:56
Bonjour,

je veux que vous aidez a trouver la syntaxe correcte de ce programme

. Écrire une règle qui la min de trois entiers. en prolog , j'ai esseyé avec ce code mais ca marche pas :(

min(A, B, C, D):- A < B,
min(A ,B ,C,T),
D is T ,
min(T,C,R),
D is R.

au secours :))))))))))))))

A voir également:

1 réponse

KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
10 déc. 2012 à 16:49
Le minimum est une loi associative donc on a : min(X,Y,Z)=min(min(X,Y),Z)=min(X,min(Y,Z))

En partant de ce constat, ça devient super simple :

inf(M,X,Y) :- X @=< Y, M=X.
min(M,X,Y) :- inf(M,X,Y); inf(M,Y,X).
min(M,X,Y,Z) :- min(N,X,Y), min(M,N,Z).

Exemples :

?- min(M,1,2,3).
M = 1.
?- min(X,3,1,2).
X = 1.
?- min(S,toto,titi,tata).
S = tata.
1
ghyzlane b Messages postés 2 Date d'inscription lundi 10 décembre 2012 Statut Membre Dernière intervention 12 décembre 2012
12 déc. 2012 à 12:56
Merci Beaucoup C gentil de votre part
0