Source: Scratch Wiki en français
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