Source: Scratch Wiki en français


Trouver la médiane d'une liste de nombres


La médiane est, dans une liste triée par ordre croissant ou décroissant, la valeur permettant de couper l'ensemble des valeurs en deux parties égales. Si la longueur de la liste est impaire, l'élément du milieu de la liste sera pris, sinon, si la longueur de la liste est paire, alors la moyenne des deux nombres les plus proches du milieu sera prise.

En pratique

On considère que vous avez une liste triée par ordre croissant ou décroissant. Si ce n'est pas le cas, allez sur le tutoriel "Trier une liste de nombre du plus petit au plus grand".

La liste s’appellera "liste" dans cet exemple.

(liste::list)

Pair ou Impair

Il y a deux types de cas : soit le nombre d’éléments dans la liste est pair, soit il est impair.

Définition d'un nombre pair :

Un nombre est pair quand le reste de la division entière par 2 est égal à 0.

En mathématiques, cela se traduit par l'opération modulo: si x modulo 2 est égal à 0, alors x est pair.

Cela donne donc :

si <((longueur de [liste v]) modulo (2)) = (0)> alors
... //le nombre est pair
sinon
... //le nombre est impair
fin

Liste de longueur impaire

Il faut trouver le nombre au milieu de la liste :

([plafond v] de ((longueur de [liste v]) / (2))) // index de l'élément médian
(élément ([plafond v] de ((longueur de [liste v]) / (2))) de [liste v]) // valeur de l'élément médian
mettre [médiane v] à (élément ([plafond v] de ((longueur de [liste v]) / (2))) de [liste v]) // la médiane est la valeur de cet élément

Liste de longueur paire

Les deux éléments nécessaires pour faire la moyenne sont :

((longueur de [liste v]) / (2)) // index du premier élément
(((longueur de [liste v]) / (2)) + (1)) // index du second élément
(élément ((longueur de [liste v]) / (2)) de [liste v]) // valeur du premier élément
(élément (((longueur de [liste v]) / (2)) + (1)) de [liste v]) // valeur du second élément

Ils faut ensuite faire la moyenne de ces nombres pour avoir trouver la médiane:

((élément ((longueur de [liste v]) / (2)) de [liste v]) + (élément (((longueur de [liste v]) / (2)) + (1)) de [liste v])) / (2) // la moyenne des deux nombres
mettre [médiane v] à (((élément ((longueur de [liste v]) / (2)) de [liste v]) + (élément (((longueur de [liste v]) / (2)) + (1)) de [liste v])) / (2)) // la médiane est la valeur de la moyenne

Script final

si <((longueur de [liste v]) modulo (2)) = (0)> alors
mettre [médiane v] à (élément ([plafond v] de ((longueur de [liste v]) / (2))) de [liste v])
sinon
mettre [médiane v] à (((élément ((longueur de [liste v]) / (2)) de [liste v]) + (élément (((longueur de [liste v]) / (2)) + (1)) de [liste v])) / (2))
fin
Cet article fait partie de la catégorie des tutos
Tous les articles de cette catégorie :