Strumenti Utente

Strumenti Sito


fisica:informatica:201617:esercitazione3rand

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisione
Revisione precedente
fisica:informatica:201617:esercitazione3rand [03/03/2017 alle 10:13 (8 anni fa)] – [Esercizio 7: Usiamo il generatore] Susanna Pelagattifisica:informatica:201617:esercitazione3rand [06/02/2018 alle 08:55 (7 anni fa)] (versione attuale) – [Esercizio 7: Usiamo il generatore] Susanna Pelagatti
Linea 49: Linea 49:
 </code> </code>
  
-===== Esercizio 2: Generazione di numero casuali con seed diversi =====+===== Esercizio 2: Generazione di numeri casuali con seed diversi =====
  
-Modificare l'esercizio 1 in modo da generare un //seed// diverso ad ogni esecuzione utilizzando la funzione time() come spiegato nei lucidi.+Modificare l'esercizio 1 in modo da generare un //seed// diverso ad ogni esecuzione utilizzando la funzione time().
  
 ===== 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'intervallo ''[0,1)'' utilizzando le funzioni ''srand()'' e ''rand()'' introdotte nell'esercizio precedente. 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'intervallo ''[0,1)'' utilizzando le funzioni ''srand()'' e ''rand()'' introdotte nell'esercizio precedente.
  
-//Suggerimento//: Utilizzare ''RAND_MAX'' e la divisione fra reali. 
  
  
 ===== Esercizio 5: Ma quanto siamo casuali ? ===== ===== Esercizio 5: Ma quanto siamo casuali ? =====
-Per restringersi all'intervallo [A,B] possiamo utilizzare anche la seguente formula+Per restringersi all'intervallo [A,B] intero possiamo utilizzare anche la seguente formula
 <code> <code>
-A+((B-­A+1.0)*rand()/(RAND_MAX+1.0))+A+(int)((B-­A)*rand()/(RAND_MAX+1.0))
 </code> </code>
 oltre a oltre a
 <code> <code>
-A+rand()%(B-A + 1.0)+A+rand()%(B-A + 1)
 </code> </code>
-Utilizzare entrambe per generare sequenze di interi nell'intervallo ''[0,20]'',+Utilizzare entrambe per generare sequenze di interi nell'intervallo ''[0,20)'',
 ci sono differenze nella distribuzione valori ottenuti ? ci sono differenze nella distribuzione valori ottenuti ?
  
Linea 93: Linea 92:
 ===== Esercizio 7: Usiamo il generatore =====  ===== Esercizio 7: Usiamo il generatore ===== 
    
-Sulla base dell'esercizio 7, scrivere un programma C che genera 100 numeri double casuali compresi nell’intervallo [0,1li stampa con precisione limitata alla quarta cifra decimale, a partire da un seme $x_0$ letto da tastiera.+Sulla base dell'esercizio 6, scrivere un programma C che genera 100 numeri double casuali e li stampa su stdout. I numeri devono essere compresi nell’intervallo [0,1stampati con precisione limitata alla quarta cifra decimale partire da un seme $x_0$ letto da tastiera.
    
    
-===== Esercizio 4: La macchina di Galton =====+===== Esercizio 8: La macchina di Galton =====
 La macchina di Galton (Galton Board) e' un dispositivo ideato nella seconda meta dell'Ottocento La macchina di Galton (Galton Board) e' un dispositivo ideato nella seconda meta dell'Ottocento
 per illustrare in modo semplice il teorema del limite centrale. per illustrare in modo semplice il teorema del limite centrale.
Linea 125: Linea 124:
 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'!).  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. +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'istante 0 la particella è posta alle coordinate $x_0=100, y_0=100$.
 +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'esercizio 6, i parametri $a,b, M$ per la generazione delle due sequenze di numeri pseudo casuali sono gli stessi).
 + 
 +Il programma C termina quando la particella raggiunge (o supera) gli estremi dell’area, e stampa la posizione raggiunta dalla particella.
 + 
 +//Nota: bisogna avere pazienza....//
fisica/informatica/201617/esercitazione3rand.1488536035.txt.gz · Ultima modifica: 03/03/2017 alle 10:13 (8 anni fa) da Susanna Pelagatti

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki