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 :

1
Initialisation
2
  Saisir N
3
  S prend la valeur 0
4
Traitement
5
  Pour i allant de 1 à N
6
    r prend une valeur aléatoire entre 1 et 100
7
    Si ..... Alors
8
      S prend la valeur S+1
9
    Fin Si
10
  Fin Pour
11
Sortie
12
  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.

1
Initialisation
2
  Saisir N
3
  S prend la valeur 0
4
Traitement
5
  Pour i allant de 1 à N
6
    r prend une valeur aléatoire entre 1 et 100
7
    Si r<=30 Alors
8
      S prend la valeur S+1
9
    Fin Si
10
  Fin Pour
11
Sortie
12
  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.

Algorithme de simulation
SimulationPour 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.