Skip to content

Instantly share code, notes, and snippets.

@AntoineAugusti
Created September 27, 2012 16:36
Show Gist options
  • Save AntoineAugusti/3795005 to your computer and use it in GitHub Desktop.
Save AntoineAugusti/3795005 to your computer and use it in GitHub Desktop.
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