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 |
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
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 ?