### 6.41.27 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.