Numeri casuali Cos’e’ un numero casuale? 3 e’ un numero casuale?

Slides:



Advertisements
Presentazioni simili
DAL CONTINUO AGLI ATOMI: RANDOM WALK
Advertisements

Funzioni e procedure Ogni linguaggio di programmazione ad alto livello mette a disposizione del programmatore questi strumenti, ed il C non è da meno!
Informatica Generale Susanna Pelagatti
____________________
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità E1 Dallanalisi del problema alla definizione dellalgoritmo.
Package Utilizzo classi.
PROGRAMMARE IN PASCAL (le basi)
Algoritmi e Programmazione
Introduzione allinformatica. Cosè linformatica ? Scienza della rappresentazione e dellelaborazione dellinformazione ovvero Studio degli algoritmi che.
Informatica di base A.A. 2003/2004 Algoritmi e programmi
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
Fare scienza con il computer
Appunti di inferenza per farmacisti
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010.
Specifiche senza JML: uso delle asserzioni. 2 Asserzioni in Java Dal jdk 1.4 (da Febbraio 2002) cè meccanismo per gestire asserzioni Asserzione: espressione.
Corso di biomatematica lezione 4: La funzione di Gauss
Corso di biomatematica lezione 6: la funzione c2
Statistica con Excel Procedure utili per l’analisi dati ottenute col foglio elettronico. Giovanni Raho 11/04/2011 Edizione 2011 prog. Giocìvanni Raho.
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
Modelli simulativi per le Scienze Cognitive Paolo Bouquet (Università di Trento) Marco Casarotti (Università di Padova)
Modelli simulativi per le Scienze Cognitive
Complementi al Corso di Ecologia - Approfondimenti di statistica
Dichiarazioni e tipi predefiniti nel linguaggio C
Espressioni condizionali
1 Programmazione = decomposizione basata su astrazioni (con riferimento a Java)
Disposizioni probabilità con dadi-gettoni
MEDIE STATISTICHE.
Teorie e Tecniche di Psicometria
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
Probabilità ed eventi casuali (Prof. Daniele Baldissin)
Unità centrale di processo
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Programma di Informatica Classi Prime
Complessità di un algoritmo
è … lo studio delle caratteristiche di regolarità dei fenomeni casuali
Introduzione al metodo Monte Carlo
Tipi primitivi in java tipodefaultmem.daa booleanfalse1 bittrue false char'\u0000'16 bit byte08 bit short016 bit int032 bit-2^312^31-1.
Corso JAVA Lezione n° 03 Istituto Statale di Istruzione Superiore “F. Enriques”
Introduzione a Javascript
Rappresentazione dell’informazione nel calcolatore.
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Terza giornata: principali classi di complessità computazionale dei problemi Guido Proietti.
Università di Torino – Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a prof. Viviana Bono Blocco 7 – Array.
Esercizi Determinare la probabilità che, lanciando due dadi da gioco, si abbia: A: somma dei risultati maggiore di 10 B: differenza dei punteggi in valore.
Programmazione in Java
Probabilità. Un percorso didattico esperimenti e simulazioni L. Cappello 9 Maggio Didattica probabilità e statistica PAS 2014.
Intervallo di Confidenza Prof. Ing. Carla Raffaelli A.A:
Rappresentazione dell'informazione
Conversione binario-ottale/esadecimale
Spiegazione di alcuni concetti
Problemi, algoritmi e programmazione
Eventi aleatori Un evento è aleatorio (casuale) quando non si può prevedere con certezza se avverrà o meno I fenomeni (eventi) aleatori sono studiati.
La distribuzione campionaria della media
Fondamenti di informatica T-A Esercitazione 2 : Linguaggio Java, basi e controllo del flusso AA 2012/2013 Tutor : Domenico Di Carlo.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri in virgola Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
TRATTAMENTO STATISTICO DEI DATI ANALITICI
RACCONTARE LA MATEMATICA MUOVERE I DATI PER EDUCARE ALL' INCERTEZZA.
La covarianza.
32 = 9 x2 = 9 x = 3 32 = 9 √9 = 3 L’estrazione di radice
Psicometria modulo 1 Scienze tecniche e psicologiche Prof. Carlo Fantoni Dipartimento di Scienze della Vita Università di Trieste Rosoluzione.
1 DISTRIBUZIONI DI PROBABILITÁ. 2 distribu- zione che permette di calcolare le probabilità degli eventi possibili A tutte le variabili casuali, discrete.
Input in Java. Uso Scanner Un oggetto per la lettura dalla tastiera Piuttosto, per rappresentare la tastiera del nostro calcolatore useremo un oggetto.
METODI E TECNOLOGIE PER L’INSEGNAMENTO DELLA MATEMATICA Lezione n°17.
La funzione CASUALE. Gli istogrammi.
Introduzione alle Classi e agli Oggetti in Java 1.
1 VARIABILI CASUALI. 2 definizione Una variabile casuale è una variabile che assume determinati valori in modo casuale (non deterministico). Esempi l’esito.
La distribuzione normale. Oltre le distribuzioni di frequenza relative a un numero finito di casi si possono utilizzare distribuzioni con un numero di.
INFERENZA NEL MODELLO DI REGRESSIONE LINEARE SEMPLICE
Gli Indici di VARIABILITA’
Transcript della presentazione:

Numeri casuali Cos’e’ un numero casuale? 3 e’ un numero casuale? NO!!! Non si puo’ dire nulla di un numero singolo (A) 0 1 2 3 4 5 6 7 8... (B) 4 8 6 7 2 0 1 5 3... La sequenza (B) ci appare casuale, (A) no... Una sequenza di numeri casuali e’ una sequenza di numeri che “sembrano” impredicibili, da cui non si riesce ad estrarre alcuna regolarita’.

Proprieta’ statistiche dei numeri casuali 1) non correlazione tra i numeri 2) ad es. uniformita’ della distribuzione 0 1 2 3 4 5 6 7 8 9

Proprieta’ statistiche dei numeri casuali Una sequenza di numeri casuali e’ una sequenza di numeri che sembrano impredicibili ma che hanno ben definite proprieta’ statistiche Ad es.: dalla distribuzione uniforme degli interi in [0,9], calcolabile la MEDIA: <r> = 4.5 0 1 2 3 4 5 6 7 8 9 <r>

Generazione di numeri casuali metodi manuali: - lancio di dadi, di monete... - estrazione da urne, da tabelle... Ottime proprieta’ di casualita’, ma... lunghi !!! praticamente inutilizzabili!!! - dispositivi elettronici ad hoc... NO! altri problemi... generazione con il computer: Generazione mediante metodi aritmetici

Generazione al computer Un computer (deterministico!) non puo’ generare dei numeri rigorosamente casuali... ... ma possiamo scrivere un algoritmo che generi una sequenza di numeri avente le stesse proprietà statistiche di una sequenza di numeri davvero casuali, con distribuzione uniforme e non correlazione tra i numeri generati: NUMERI PSEUDOCASUALI In pratica: stesso valore di una sequenza realmente casuale! Vantaggi: rapidita’, possibilita’ di ricreare la stessa sequenza fornendo all'algoritmo lo stesso valore iniziale (“seme”)

un metodo possibile (‘middle square’, John Von Neumann, 1946) Per generare una sequenza di numeri con 10 cifre: si parte da un numero, si eleva al quadrato e si prendono le 10 cifre centrali , etc. etc.. Esempio: 5772156649**2 = 33317792380594909291 queste cifre centrali sono il prossimo numero NB: la sequenza non e’ veramente casuale, perche’ ogni numero e’ determinato dal precedente. Ma ‘sembra’ casuale! Possibili problemi: altro esempio , “brutto”: 6100**2 = 37210000 2100**2 = 4410000 4100**2 = 16810000 8100**2 = 65610000

un altro metodo: LCM (linear congruential method) x0 : valore iniziale (“seme” o “seed”) a, c, m : opportunatamente scelti a, c > o = 0, m> x0 , c, a Esempio “brutto”: a=c= x0 =7, m=10 : sequenza: {7, 6, 9, 0, 7, 6, 9, 0, ....}

Generazione al computer Tipicamente procedure intrinseche (migliori !) che generano numeri casuali tra [0,1] con distribuzione uniforme

Numeri random in Java - I In Java si puo’ utilizzare semplicemente la classe Math: // valore compreso tra 0 e 1 double x = Math.random(); (da’ lo stesso risultato che Random nextDouble() descritto nella prossima diapositiva)

Numeri random in Java - II oppure la classe java.util.Random: import java.util.Random; // da scrivere all’inizio del codice Costruttori Random Random r = new Random(); // per default il seme (seed) // viene preso dal clock della macchina Random r = new Random(long seed); //qui invece e’ fissato per //poter riprodurre una sequenza Metodi Random Tutti i seguenti metodi ritornano un numero random con distribuzione uniforme, tranne nextGaussian(). Qui x e’ un oggetto Random. type chiamata Descrizione int i = r.nextInt(int n) da’ un random int tra 0 e n int i = r.nextInt() da’ un random int tra 0 e 2**32 long l = r.nextLong() da’ un random long (full range) float f = r.nextFloat() da’ un random float tra 0 e 1 double d = r.nextDouble() da’ un random double tra 0 e 1 boolean b = r.nextBoolean() da’ un random boolean (true o false) double d = xrnextGaussian() da’ un n. random, media 0 e dev. st. 1

A cosa servono i numeri pseudocasuali? per calcolare aree... (e il ...) (vedi PiMonteCarlo.java) per simulare processi casuali... r=1 Area cerchio Area quadrato/4 4*# punti nel cerchio # punti nel quadrato

Distribuzione non uniforme - I Se consideriamo la somma di N variabili casuali uniformi, l'andamento della distribuzione della variabile “somma” non e’ piu’ uniforme ma, all’ aumentare di N, approssima una distribuzione particolare dal caratteristico profila a forma di campana (distribuzione normale o gaussiana):

Distribuzione non uniforme - II Che significato ha la somma di N variabili casuali uniformi ? puo’ rappresentare ad esempio la posizione finale di un ‘camminatore’ che fa N passi a caso, a destra o a sinistra con equiprobabilita’ (‘random walk’); simulazione ad esempio considerando i passi tutti di lunghezza uguale e generando una variabile intera casuale 0 o 1

Distribuzione non uniforme - III E’ facile calcolare analiticamente la probabilita’ per un ‘random walk’ di n passi di finire in un punto x: si tratta di un triangolo di Pascal con degli zeri !

La tavola di Galton distribuzione di probabilita’ della posizione finale di un ‘random walk’ unidimensionale Biglie che partono da una stessa posizione centrale e cadono deviate da chiodi disposti secondo uno schema triangolare. Ogni volta che una sferetta colpisce un chiodo ha il 50% di probabilità di cadere a sinistra e il 50% a destra. Le palline si accumulano nelle scanalature collocate alla base della struttura, formando delle pile con una certa distribuzione. In questa simulazione le pile nelle scanalature sono la somma di N=8 variabili casuali, ma se si aggiungono più file di chiodi (cioè se si aumenta N, il numero di variabili casuali), l'andamento della distribuzione approssima quello della distribuzione normale. poche tante