Lezione 8
Lezione 8
Numeri Casuali

In questa ottava lezione affronteremo l'implementazione di un generatore di numeri casuali. Lo
utilizzeremo quindi per generare numeri secondo una distribuzione Gaussiana. Infine utilizzeremo dei
metodi Monte Carlo per calcolare l'area del cerchio e per verificare il Teorema del Limite Centrale.

ESERCIZIO 8.0 - Generatore di numeri casuali (da consegnare):
Scrivere una classe che implementi un generatore di numeri pseudocasuali lineare congruenziale,
con parametri a = 1664525, c = 1013904223 e m = 231. L'header della classe è dato qui di seguito:
Classe Random

La keyword unsigned indica che il tipo seguente deve essere considerato senza segno, lasciando
così un bit in più alla rappresentazione del numero. L'utilizzo di unsigned è necessario con i parametri
dai noi scelti per evitare problemi di overflow degli interi nelle operazioni.
Scrivere un programma che utilizzi il generatore implementato e:
  1. riempia un istogramma con 100000 numeri casuali tra 0 e 1;
  2. verifichi che il periodo del generatore con parametri a = 4, c = 1, m = 9 è molto limitato.

Brevi richiami
Generatore Lineare congruenziale

Istogrammi con ROOT

Compilare con classi ROOT

ESERCIZIO 8.1 - Distribuzioni esponenziale e gaussiana. (da consegnare):
Scrivere un programma che generi 100000 numeri casuali che seguano una distribuzione
esponenziale utilizzando il metodo della trasformata e altrettanti numeri casuali distribuiti
normalmente utilizzando il metodo Box-Muller. E' possibile implementare i nuovi metodi
all'interno della classe precedentemente costruita. Nel caso della distribuzione esponenziale
assumere un parametro di rate ξ=0.1 mentre la gaussiana ha media μ=0 e σ=1.

Brevi richiami
Metodo di Box Muller

ESERCIZIO 8.2 - Generare numeri con distribuzione Gaussiana(da consegnare):
Aggiungere al generatore già creato un ulteriore metodo per generare numeri distribuiti come una Gaussiana di
media μ e sigma σ utilizzando il metodo accept-reject. Scrivere un programma che generi 100000 numeri
casuali con i parametri μ = σ = 1 e con μ=0,σ=2 e riempia due istogrammi con tali numeri.

Brevi richiami
Metodo Accept-Reject

Disegnare su più canvas

ESERCIZIO 8.3 - Verifica del Teorema del Limite Centrale(da consegnare):
Generare una serie di numeri casuali uniformemente distribuiti in [0,1] e calcolare la somma eseguita su
un numero n di elementi consecutivi della serie generata.
Calcolare la varianza della serie di numeri generata e della serie delle somme. Verificare che questa scala
con n. Passare da riga di comando sia il numero di elementi della serie di partenza (10000 può essere un
buon numero) ed il numero di elementi su cui fare la somma.
Creare due istogrammi che contengano la distribuzione dei numeri generata e la distribuzione delle somme.
Verificare come cambia la distribuzione delle somme al variare di n.

Brevi richiami
Il Teorema del Limite Centrale


Solo per curiosi



Back to Home Page