SUBROUTINE UNIF ( IX, U ) INTEGER K1, IX REAL U K1 = IX / 127773 IX = 16807 * ( IX - K1 * 127773 ) - K1 * 2836 IF ( IX .LT. 0 ) IX = IX + 2147483647 U = IX * 4.656612875e-10 END PROGRAM Simulation REAL U INTEGER IX, I WRITE (*,*) ’ Initialisez le generateur’ READ (*,*) IX DO 10 I = 1, 20 CALL UNIF ( IX, U ) WRITE (*,*) IX, U 10 CONTINUE END |
PROGRAM Histogramme REAL U INTEGER I, IX, K, M, HIST (0:9) K = 10 WRITE (*,*) ’ Initialisez le generateur’ READ (*,*) IX DO 10 I = 1, 10000 CALL UNIF ( IX, U ) M = K * U HIST (M) = HIST (M) +1 10 CONTINUE WRITE (*,*) (HIST (M), M = 0, 9) END |
i = 1NUi soit
calculé et affiché à la fin de la boucle. Faites des essais avec N = 10, 100, 1000. Quelle est votre
conclusion ?

pour différentes valeurs de n, par exemple, n = 10, 100, 1000, 10000, 100000, 1000000 et comparez le
résultat avec
. Pour éviter la recompilation à chaque changement de valeurs, on pourra définir le
paramètre n comme une variable à entrer au clavier.
Vérifier votre programme à l’aide de l’animation en ligne.
Pouvez-vous montrer que dans un certain sens — à préciser — on a Sn
? Pouvez-vous proposer une
méthode générale de simulation des espérances ?
Soit

avec
log k),
k/(
log k), où (
k) est une suite de variables aléatoires indépendantes et identiquement
distribuées selon la loi

Calculer Sn pour n = 10, 100, 1000, 10000, 100000, 1000000 dans les deux cas. Avez-vous une conjecture sur limSn ? Pouvez-vous justifier cette conjecture ?