Compter les éléments d’une liste ou d’une matrice vérifiant une propriété : count

### 6.42.30 Compter les éléments d’une liste ou d’une matrice vérifiant une propriété : count

count a un, deux ou trois paramètres :

1. une liste d’entiers L
2. - une fonction réelle f,
   - liste L de longueur n ou une matrice A de dimension p*q,
   - un argument optionnel row ou col, dans le cas où le deuxième paramètre est une matrice A.

Lorsque count a :

- un paramètre qui est une liste d’entiers L, count(L) compte le nombre d’occurrences en renvoyant une matrice de 1ière colonne les éléments de la liste L triée et de 2ième colonne l’effectif de cet élément dans la liste.
- deux paramètres, count applique la fonction aux éléments de la liste (ou de la matrice) et en renvoie la somme, c’est à dire,
  count(f,L) renvoie le nombre f(L[0])+f(L[1])+..f(L[n-1]) ou
  count(f,A) renvoie le nombre f(A[0,0])+....+f(A[p-1,q-1]).
  Si f est une fonction boolénne count renvoie le nombre d’éléments de la liste (ou de la matrice) pour lesquels la fonction boolénne est vraie.
- ou trois paramètres, count applique la fonction aux éléments de chaque ligne (resp colonne) de la matrice A si l’argument optionnel est row (resp col) et renvoie une liste de longueur p ayant comme kième élément :
  f(A[k,0])+...f(A[k,q-1]) (resp une liste de longueur q ayant comme kième élément : f(A[0,k])+..f(A[p-1,k])).

On tape :

count([1,3,1,1,2,10,3])

On obtient :

[[1,3],[2,1],[3,2],[10,1]]

On tape :

count((x)->x,[2,12,45,3,7,78])

Ou on tape :

count((x)->x,[[2,12,45],[3,7,78]])

On obtient :

147

car on a : 2+12+45+3+7+78=147.
On tape :

count((x)->x,[[2,12,45],[3,7,78]],row)

On obtient :

[59,88]

car on a : 2+12+45=59 et 3+7+78=88.
On tape :

count((x)->x,[[2,12,45],[3,7,78]],col)

On obtient :

[5,19,123]

car on a : 2+3=5,12+7=10,45+78=123.
On tape :

count((x)->x<12,[2,12,45,3,7,78])

On obtient :

3

On tape :

count((x)->x==12,[2,12,45,3,7,78])

Ou on tape :

count((x)->x==12,[[2,12,45],[3,7,78]])

On obtient :

1

On tape :

count((x)->x>12,[2,12,45,3,7,78])

On obtient :

2

On tape :

count(x->x`^`2,[3,5,1])

On obtient :

35

En effet on a : 32+52+11=35.
On tape :

count(id,[3,5,1])

On obtient :

9

En effet, id est la fonction identité et on a : 3+5+1=9.
On tape :

count(1,[3,5,1])

On obtient :

3

En effet, 1 est la fonction constante égale à 1 et on a : 1+1+1=3.