Définir un tableau comme suit
Écrire un programme qui réalise les tâches suivantes:
Remplir de valeurs aléatoires le tableau tab
.
Trouver le plus petit élément de tab
.
Placer le plus grand élément de tab
en fin de tableau en procédant à un échange de place.
Rechercher dans tab
un élément entré au clavier par l’utilisateur.
Calculer la moyenne des éléments de tab
et afficher le résultat avec deux chiffres significatifs.
Calculer la variance des éléments de tab
et afficher le résultat avec deux chiffres significatifs.
La variance \(v\) des élément d’un vecteur \(\vec x\) se calcule comme \[ v = \frac{1}{N}\sum_{i=1}^N (x_i - \bar x)^2, \] où \(N\) est la longueur du vecteur \(\vec x\), \(\bar x\) la moyenne des élément de \(\vec x\), et \(x_i\) est le \(i\)-ème élément de \(\vec x\).
Trouver l’élément médian du tableau tab
. L’élément médian s’il existe est défini comme étant la valeur pour laquelle on trouve autant d’éléments strictement inférieurs que supérieurs dans le tableau.
Exemple: L’élément médian du tableau \(\vec x = (1, 5, 8, 2, 6, 5, 3, 1, 0, 3)\) est \(3\).
Écrire une fonction pour chacun des points précédents.
Mettre toutes les fonctions dans un module.
Vérifier que le générateur de nombres aléatoires est équitable. Pour ce faire utiliser un tableau d’entiers non signés pour comptabiliser le nombre de fois où un nombre est tiré. L’indice du tableau correspond à l’indice du tableau, et le numéro correspondant à l’élément est incrémenté de un lorsque l’indice est tiré. Utiliser les notions précédentes pour dire si le générateur est équitable.
Utiliser la fonction plot_barchart_svg
de rust_hepia_lib
afin d’afficher un histogramme afin de sauver l’histogramme sous la forme d’un ficher au format svg
.
Afin d’utiliser plot_barchart_svg
il faut également télécharger la librairie plotlib
que vous trouverez sur cyberlearn. Il faut extraire l’archive au même niveau que rust_hepia_lib
(n’oubliez pas de télécharger la dernière version sur https://githepia.hesge.ch/orestis.malaspin/rust_hepia_lib) pour que cela fonctionne directement. Sinon il vous faudra modifier le fichier Cargo.toml
de rust_hepia_lib
.