fisica:informatica:201617:esercitazione3rand
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente | ||
fisica:informatica:201617:esercitazione3rand [03/03/2017 alle 10:12 (9 anni fa)] – [Esercizio 6: Realizziamo un generatore di numeri pseudo-casuali] Susanna Pelagatti | fisica:informatica:201617:esercitazione3rand [06/02/2018 alle 08:55 (8 anni fa)] (versione attuale) – [Esercizio 7: Usiamo il generatore] Susanna Pelagatti | ||
---|---|---|---|
Linea 49: | Linea 49: | ||
</ | </ | ||
- | ===== Esercizio 2: Generazione di numero | + | ===== Esercizio 2: Generazione di numeri |
- | Modificare l' | + | Modificare l' |
===== Esercizio 3: Generazione di numero casuali reali ===== | ===== Esercizio 3: Generazione di numero casuali reali ===== | ||
Scrivere un programma C che legge dallo standard input un numero N di reali da generare e stampa sullo standard output una sequenza di N numeri casuali reali nell' | Scrivere un programma C che legge dallo standard input un numero N di reali da generare e stampa sullo standard output una sequenza di N numeri casuali reali nell' | ||
- | // | ||
- | ===== Esercizio 4: La macchina di Galton ===== | ||
- | La macchina di Galton (Galton Board) e' un dispositivo ideato nella seconda meta dell' | ||
- | per illustrare in modo semplice il teorema del limite centrale. | ||
- | Qui vogliamo realizzare una versione virtuale della macchina, che utilizzi un | ||
- | generatore di numeri pseudocasuali. Le regole sono semplici: dato un opportuno | ||
- | sistema di riferimento (illustrato in Figura sotto) ed un intero n > 0 una pallina parte | ||
- | dall' | ||
- | contestualmente verso destra o verso sinistra (in modo casuale) di +0.5 o -0.5 con | ||
- | uguali probabilita' | ||
- | < | ||
- | n = 8 | ||
- | ...1.2.3.4.5.6.7.8.9 | ||
- | ===================== | ||
- | 0|........o........| | ||
- | 1|.........o.......| | ||
- | 2|..........o......| | ||
- | 3|.........o.......| | ||
- | 4|........o........| | ||
- | 5|.......o.........| | ||
- | 6|......o..........| | ||
- | 7|.....o...........| | ||
- | 8| | | |o| | | | | | | ||
- | ===================== | ||
- | ...1.2.3.4.5.6.7.8.9 | ||
- | |||
- | Figura 1 La macchina di Galton per n = 8 | ||
- | </ | ||
- | E' facile convincersi che la posizione di arrivo nel punto piu' basso puo' assumere tutti i valori tra 1 e n+1 (non con la stessa probabilita' | ||
- | |||
- | Realizzare un programma C che letto il numero dipassi da standard input igeneri e visualizzi sullo schermo possibili percorsi della pallina. Si puo' utilizzare una grafica a piacere o quella della Figura 1. | ||
===== Esercizio 5: Ma quanto siamo casuali ? ===== | ===== Esercizio 5: Ma quanto siamo casuali ? ===== | ||
- | Per restringersi all' | + | Per restringersi all' |
< | < | ||
- | A+((B-A+1.0)*rand()/ | + | A+(int)((B-A)*rand()/ |
</ | </ | ||
oltre a | oltre a | ||
< | < | ||
- | A+rand()%(B-A + 1.0) | + | A+rand()%(B-A + 1) |
</ | </ | ||
- | Utilizzare entrambe per generare sequenze di interi nell' | + | Utilizzare entrambe per generare sequenze di interi nell' |
ci sono differenze nella distribuzione valori ottenuti ? | ci sono differenze nella distribuzione valori ottenuti ? | ||
Linea 123: | Linea 92: | ||
===== Esercizio 7: Usiamo il generatore ===== | ===== Esercizio 7: Usiamo il generatore ===== | ||
- | Sulla base dell' | + | Sulla base dell' |
+ | ===== Esercizio 8: La macchina di Galton ===== | ||
+ | La macchina di Galton (Galton Board) e' un dispositivo ideato nella seconda meta dell' | ||
+ | per illustrare in modo semplice il teorema del limite centrale. | ||
+ | Qui vogliamo realizzare una versione virtuale della macchina, che utilizzi un | ||
+ | generatore di numeri pseudocasuali. Le regole sono semplici: dato un opportuno | ||
+ | sistema di riferimento (illustrato in Figura sotto) ed un intero n > 0 una pallina parte | ||
+ | dall' | ||
+ | contestualmente verso destra o verso sinistra (in modo casuale) di +0.5 o -0.5 con | ||
+ | uguali probabilita' | ||
+ | < | ||
+ | n = 8 | ||
+ | ...1.2.3.4.5.6.7.8.9 | ||
+ | ===================== | ||
+ | 0|........o........| | ||
+ | 1|.........o.......| | ||
+ | 2|..........o......| | ||
+ | 3|.........o.......| | ||
+ | 4|........o........| | ||
+ | 5|.......o.........| | ||
+ | 6|......o..........| | ||
+ | 7|.....o...........| | ||
+ | 8| | | |o| | | | | | | ||
+ | ===================== | ||
+ | ...1.2.3.4.5.6.7.8.9 | ||
+ | Figura 1 La macchina di Galton per n = 8 | ||
+ | </ | ||
+ | E' facile convincersi che la posizione di arrivo nel punto piu' basso puo' assumere tutti i valori tra 1 e n+1 (non con la stessa probabilita' | ||
+ | Realizzare un programma C che letto il numero di passi da standard input generi e visualizzi sullo schermo possibili percorsi della pallina. Si puo' utilizzare una grafica a piacere o quella della Figura 1. | ||
+ | |||
+ | ===== Esercizio 9: Simulazione di un moto Browniano discreto ===== | ||
+ | |||
+ | Scrivere un programma C che simula il moto di una particella che si muove di moto casuale su un piano, in un’area quadrata delimitata dagli assi $x=0$, $y=0$ e dalle rette $x=200$, $y=200$. All' | ||
+ | All’istante $i+1$, le coordinate della particella sono calcolate come: | ||
+ | \begin{align} | ||
+ | x_{i+1} = x_i + A\\ | ||
+ | y_{i+1} = y_i + B | ||
+ | \end{align} | ||
+ | Dove A e B sono due numeri double pseudo-casuali compresi nell’intervallo [-1,1]. Per la generazione di A e di B il programma usa separatamente due semi A0 e B0 letti da tastiera (invece, se si usa il generatore dell' | ||
+ | |||
+ | Il programma C termina quando la particella raggiunge (o supera) gli estremi dell’area, | ||
+ | |||
+ | //Nota: bisogna avere pazienza....// |
fisica/informatica/201617/esercitazione3rand.1488535967.txt.gz · Ultima modifica: 03/03/2017 alle 10:12 (9 anni fa) da Susanna Pelagatti