Min 3 entiers

ghyzlane b Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
ghyzlane b Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
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 19031 Statut Modérateur 3 020
 
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 3 Date d'inscription   Statut Membre Dernière intervention  
 
Merci Beaucoup C gentil de votre part
0