Created
September 27, 2012 16:36
-
-
Save AntoineAugusti/3795005 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var nb_tests, nb_decoupes_intervalle, nb_valeurs, partie_entiere, i, j, compteur : Entier | |
var valeur, partie_decimale, borne_inf, borne_sup, valeur_theorique, pourcentage_ecart : Réel | |
var tab, densite : Tableau [1...nb_valeurs] de Réel | |
// Les informations de base | |
nb_tests <- SQRT(2) // SQRT = square root (racine carrée) | |
nb_decoupes_intervalle <- 10 | |
nb_valeurs <- 1000 | |
pour i <- 1 à nb_valeurs faire | |
valeur <- i * nb_tests | |
partie_entiere <- ENT(valeur) // ENT retourne la partie entière d'un nombre | |
partie_decimale <- valeur - partie_entiere | |
tab[i] <- partie_decimale | |
finpour | |
// On range les parties décimales enregistrées dans le tableau dans l'ordre croissant | |
array_sort(tab) | |
// On se place dans le premier intervalle pour commencer à compter les éléments | |
i <- 1 | |
compteur <- 0 | |
// On va parcourir toutes les parties décimales, dans l'ordre ascendant, et les associer aux bons intervalles | |
pour j <- 1 à nb_valeurs faire | |
// On se trouve dans le i ème intervalle. Calculons les bornes de cet intervalle | |
borne_inf <- (i - 1) * (1 / nb_decoupes_intervalle) | |
borne_sup <- i * (1 / nb_decoupes_intervalle) | |
si (tab[i] >= borne_inf ET tab[i] < borne_sup) alors | |
// L'élément se trouve bien dans l'intervalle, on incrémente le nombre d'éléments contenus dans cet intervalle | |
compteur <- compteur + 1 | |
sinon | |
// On vient de changer d'intervalle. On enregistre le nombre de valeurs dans le i ème intervalle dans le tableau des densités | |
densite[i] <- compteur | |
// On se prépare à compter les éléments dans l'intervalle suivant au prochain tour de boucle. On a déjà trouvé un élément | |
compteur <- 1 | |
i <- i + 1 | |
finsi | |
// Le dernier élément n'est pas compté avec cette méthode. On le rajoute dans le dernier intervalle en cours | |
si (j = nb_valeurs) alors | |
densite[i-1] <- densite[i-1] + 1 | |
finsi | |
finpour | |
// On affiche les densités de chaque intervalle | |
pour i <- 1 à nb_decoupes_intervalle faire | |
borne_inf <- (i - 1) * (1 / nb_decoupes_intervalle) | |
borne_sup <- i * (1 / nb_decoupes_intervalle) | |
valeur_theorique <- nb_valeurs / nb_decoupes_intervalle | |
pourcentage_ecart <- (ABS(valeur_theorique - densite[i]) / valeur_theorique) * 100 | |
// Ici, il faudrait concaténer les variables pour afficher proprement | |
écrire (Intervalle #i (borne_inf - borne_sup) : densite[i] éléments. (valeur théorique : valeur_theorique, écart de pourcentage_ecart %) | |
ecriresautdeligne() | |
finpour |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment