Compter le nombre d'occurrences d'un nombre dans une liste
Je suis en train d'écrire un programme en prolog que de compter le nombre d'occurrences d'un nombre dans une liste
count([],X,0).
count([X|T],X,Y):- count(T,X,Z), Y is 1+Z.
count([_|T],X,Z):- count(T,X,Z).
et c'est la sortie
?- count([2,23,3,45,23,44,-20],X,Y).
X = 2,
Y = 1 ;
X = 23,
Y = 2 ;
X = 23,
Y = 1 ;
X = 3,
Y = 1 ;
X = 45,
Y = 1 ;
X = 23,
Y = 1 ;
X = 44,
Y = 1 ;
X = -20,
Y = 1 ;
false.
c'est compter le même nombre plusieurs fois
Toute aide est appréciée
source d'informationauteur Ratzo
Vous devez vous connecter pour publier un commentaire.
Au lieu de la variable muette _ juste utiliser une autre variable X1 et afin de ne pas unifier avec X.
Cependant noter que le deuxième argument X est censé être instancié. Donc, par exemple, count([2,23,3,45,23,44,-20],23,C) va unifier C avec 2. Si vous voulez le décompte pour chaque élément
Puis vous obtenez des
Vous pouvez également utiliser le
include
prédicat:J'ai fait ça comme ça. Qui vous donne une seule réponse et de finitions.