Revenons à nouveau sur l'exemple de la population mondiale qui comporte 30 % de malades d'hypertension.
On cherche à écrire un algorithme permettant de donner dans un échantillon de taille N (saisi par l'utilisateur) la proportion d'hypertendus.
Question
On considère l’algorithme suivant :
Initialisation
Saisir N
S prend la valeur 0
Traitement
Pour i allant de 1 à N
r prend une valeur aléatoire entre 1 et 100
Si ..... Alors
S prend la valeur S+1
Fin Si
Fin Pour
Sortie
Afficher .....
Quel est le rôle de chacune des variables dans cet algorithme ?
Compléter l'algorithme afin qu'il retourne la proportion d'hypertendus dans l'échantillon.
Indice
On rappelle qu'il y a 30 chances sur 100 pour une personne de l'échantillon d'être hypertendue.
Indice
La proportion d'hypertendus dans l'échantillon est le rapport entre le nombre de personnes hypertendues et le nombres de personnes au total dans l'échantillon.
Solution
Rôle des variables
N désigne la taille de l'échantillon. Il est donné par l'utilisateur.
S désigne le nombre de personnes hypertendues dans l'échantillon. Au départ, S vaut 0 puis on ajoute 1 à chaque fois qu'une simulation nous donne une personne hypertendue.
r est un nombre aléatoire entre 1 et 100. Si r<=30, on considère qu'on tombe sur une personne hypertendue.
Algorithme complet
Pour savoir si une personne prise au hasard est hypertendue, on fabrique un nombre aléatoire entre 1 et 100. Si ce nombre est inférieur ou égal à 30, on considère que la personne est hypertendue. Cela permet d'avoir une probabilité de 30/100 que cette personne soit hypertendue, ce qui correspond aux données du problème.
Pour avoir la proportion de personnes hypertendues, on divise le nombre S de personnes hypertendues dans l'échantillon par la taille N de l'échantillon.
Initialisation
Saisir N
S prend la valeur 0
Traitement
Pour i allant de 1 à N
r prend une valeur aléatoire entre 1 et 100
Si r<=30 Alors
S prend la valeur S+1
Fin Si
Fin Pour
Sortie
Afficher S/N
Question
En utilisant Python en ligne, écrire un programme prenant en entrée la taille d'un échantillon et retournant la proportion de personnes hypertendues dans cet échantillon.
Lancer ce programme pur un échantillon de taille 75. Quelle valeur obtenez-vous ?
Solution
Voici le programme Python correspondant à l’algorithme élaboré à la question précédente.
Simulation : Pour un échantillon de taille 75
Une valeur obtenue est 0,2533
Bien sur, en refaisant la simulation on obtient des valeurs différentes à chaque fois, du fait de la fluctuation d'échantillonnage.
Question
Le résultat de votre simulation est-il cohérent avec ce que l'on peut s'attendre à trouver ? Peut-on supposer que votre programme fonctionne correctement ?
Indice
On pourra calculer l'intervalle de fluctuation au seuil de 95%
Solution
Ici p=0,3 et N=75.
L'intervalle de fluctuation au seuil de 95% est donné par la formule :
\(I=\left[0,3-\frac{1}{\sqrt {75}} ;0,3+\frac{1}{\sqrt {75}}\right]\) donc \(I\approx [0,185 ;0,415]\)
La valeur de 0,25 obtenue dans notre simulation est bien dans l'intervalle de fluctuation, il n'y a donc rien d'anormal, on peut supposer que le programme fonctionne correctement.