Casualità e numeri casuali

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Casualità e numeri casuali"

Transcript

1 Casualità e numeri casuali Esame di Matematica del discreto Andrea Nardelli Elena Scarpelli

2

3 Indice 1 Introduzione 3 2 Utilizzi dei numeri casuali 5 3 Metodi per calcolare i numeri casuali Fisici Computazionali Middle Square Lineare Congruenziale Congruenziale Quadratico Inverso Congruenziale Ricorsivo Inverso Congruenziale Esplicito Inverso Congruenziale Composto Fibonacci Ritardato Registro a Scorrimento a Retroazione Lineare Crittografici Blum Blum Shub Fortuna Test Frequency Test Serial Test Poker Test Autocorrelation Test Runs Test Conclusioni 27 Bibliografia 29 1

4 2 INDICE

5 Capitolo 1 Introduzione Un numero di per sè stesso non può essere casuale, eccetto nel senso del modo in cui è stato generato. Informalmente, generare un numero casuale significa che prima di essere generato, tutti gli elementi di un certo insieme siano equalmente probabili come risultato. In particolare, questo significa che la conoscenza dei numeri generati da questo processo, o da un qualunque altro processo, non porta informazioni aggiuntive al riguardo del prossimo numero generato. Questo è equivalente alla indipendenza statistica. Sin dall antichità esistono metodi per creare queste sequenze, ma prima dell avvento dei generatori computazionali, generare grandi moli di numeri sufficientemente casuali (importanti a fini statistici) veniva fatto con metodi fisici e richiedeva molto lavoro. I risultati quindi venivano a volte collezionati e distribuiti sotto forma di tabelle, che mantengono le proprietà desiderate indipendentemente da come vengono lette (per riga, colonna, in diagonale, in maniera irregolare..). La prima tabella fu pubblicata da Karl Pearson nel Le prime tabelle furono create nei modi più svariati. Per esempio, quella di L.H.C. Tippett prendeva i numeri casualmente dai registri del censo, un altra (di R.A. Fisher e Francis Yates) usava numeri presi casualmente dalle tavole logaritmiche; infine nel 1939 un insieme di numeri è stato pubblicato da M.G. Kendall e B. Babington Smith prodotto da una macchina speciale insieme ad un operatore umano. A metà degli anni 40, la RAND Corporation sviluppò una tabella di un millione di numeri, usando come generatore una roulette attaccata ad un calcolatore

6 4 CAPITOLO 1. INTRODUZIONE Il nome della tabella citata è A Million Random Digits with 100,000 Normal Deviates ed disponibile all indirizzo reports/m R1418. Realizzare un autentica sequenza non ripetitiva è inattuabile con un normale computer: quest ultimo è un automa a stati finiti, il che rende impossibile calcolare valori infiniti con un elaboratore in grado di gestirne soltanto un numero limitato. Per questo nel corso degli anni si sono moltiplicati i meccanismi per tentare di elaborare algoritmi capaci di produrre sequenze pseudo-casuali. Una serie di dati pseudo-casuali deve soddisfare almeno due proprietà: distribuzione degli elementi della sequenza secondo una funzione di distribuzione predefinita f(x): di solito si richiede una distribuzione uniforme su un intervallo specificato (equidistribuzione); indipendenza tra elementi successivi della sequenza. Un generatore di numeri pseudo-casuali prende da qualche parte un numero iniziale, chiamato seme casuale (random seed) ed esegue iterativamente una determinata formula. Molti linguaggi di programmazione includono funzioni o librerie per la generazione di numeri casuali, ma spesso hanno scarsa rilevanza statistica e alcuni ripetono le sequenze anche solo dopo decine di migliaia di tentativi. Spesso sono inizializzati usando l orologio interno del calcolatore come seme. Queste funzioni forniscono abbastanza casualità per alcuni scopi (come per esempio nei videogiochi), ma non sono adatti per quelle applicazioni che richiedono un elevata qualità della casualità, come per esempio nel contesto crittografico, dove dobbiamo imporre requisiti più ferrei. D altra parte, un generatore computazionale permette di ottenere nuovamente la stessa sequenza di numeri casuali se inizializzato allo stesso modo. Consideriamo per esempio un programma che effettua una simulazione: vogliamo che la simulazione sia davvero casuale, ma vogliamo anche essere in grado di ripetere uno stesso calcolo, magari solo per scopi di debugging e test. Una buona soluzione consiste nel chiamare il generatore di numeri casuali all inizio del programma, per ottenere un seme; tale seme può essere trascritto come parte dell output del simulatore e da esso generatore potrebbe generare tutti i dati casuali necessari alla simulazione. La conoscenza del seme originale del generatore ci consente anche di verificare tutti i calcoli, rieseguendo il programma con gli stessi input e lo stesso seme.

7 Capitolo 2 Utilizzi dei numeri casuali Inizialmente i numeri casuali, grazie alla loro impredicibilità, furono studiati nel contesto del gioco d azzardo e molti oggetti furono usati a tale scopo, per esempio i dadi, le carte o la roulette. In ambito politico, nell antica società ateniense la rotazione e il sorteggio nella partecipazione alle cariche politiche avveniva secondo il caso perché tutti i cittadini venivano considerati uguali davanti alla legge e quindi ognuno aveva pari probabilità di parteciparvi. Ancora oggi la casualità viene usata in America e in Inghilterra per il sorteggio dei giurati nei processi. L intera arte divinatoria si basa sull osservazione di fenomeni fisici casuali (che possono essere usati per generare VERI numeri casuali). La casualità è strettamente legata anche alla fase di test per la preveggenza: estrazioni casuali da un mazzo di carte garantiscono che il soggetto del test non possa in alcun modo indovinare la carta seguente. In seguito, produrre numeri casuali divenne di vitale importanza per i giochi elettronici, come quelli presenti nei moderni casino. Essi contengono uno o piú generatori di numeri casuali che decidono l uscita di una giocata. Anche le slot machines, che con la loro leva meccanica sembrano far girare i rulli casualmente, in realtà lo fanno per intrattenimento e li fermano esattamente dove il loro software interno ha deciso nel momento stesso in cui viene tirata la leva. Discorso analogo per i videogiochi, dove per esempio si deve presentare al giocatore un ambiente con condizioni variabili. In ambito scientifico, i numeri casuali vengono impiegati a fini statistici, di analisi e simulazione. Essi servono ad esempio per definire campioni significativi, oppure per emulare fenomeni casuali. Un campo in cui sono fondamentali i numeri casuali è la crittografia. Essi servono per garantire la sicurezza nelle comunicazioni moderne. In particolare, se una persona vuole oscurare un messaggio per renderlo intelleggibile a terzi, deve usare una chiave per l algoritmo di crittazione totalmente impredicibile. Se la chiave non è creata con un metodo appropriato la sicurezza dell intero messaggio (e probabilmente anche dei precendeti e dei successivi) è compromessa. 5

8 6 CAPITOLO 2. UTILIZZI DEI NUMERI CASUALI

9 Capitolo 3 Metodi per calcolare i numeri casuali I numeri casuali possono essere generati in base a fenomeni fisici: le sequenze cosí ottenute sono veramente casuali, non ripetibili e la loro generazione è lunga e laboriosa. Con l avvento dei computer, la generazione è divenuta computazionale: le sequenze risultanti sono pseudo-casuali, la loro generazione è veloce ma sono ripetibili e in taluni casi predicibili. 3.1 Fisici I primi metodi per generare numeri casuali (dado, moneta, roulette) sono ancora usati al giorno d oggi principalmente nei giochi e nei giochi d azzardo, perché sono troppo lenti per l applicazione a fini statistici o crittografici. Alcuni fenomeni fisici, come il rumore termico nei diodi di Zener, sembrano essere veramente casuali e possono essere usati alla base di generatori di numeri casuali fisici. In rete ci sono molti metodi fantasiosi per generare numeri casuali. Un metodo molto usato è usare una funzione hash su un frame di un video preso da una sorgente casuale. Questo è il metodo usato per esempio da Lavarand. Esso prende l immagine delle macchie create dal materiale galleggiante nelle lavalamp, ne estrae dati casuali al fine di produrre un numero meramente casuale da usare come seme in un algoritmo pseudo-casuale. Anche se la seconda parte usa un algoritmo pseudocasuale, è un vero generatore di numeri casuali perché il seme utilizzato è totalmente casuale. Un altro esempio viene dalla Lithium Technologies, che usa una videocamera che inquadra il cielo in una giornata ventosa e nuvolosa. Un altra azienda ancora, la Random.org usa più banalmente il rumore atmosferico. Al di fuori dell ambiente computazionale, la generazione di numeri realmente casuali si basa sulla teoria dell entropia. Sorgenti di entropia includono il decadimento nucleare e le condizioni atmosferiche. Un altra fonte di entropia è il comportamento umano. Infatti, anche se gli uomini non 7

10 8 CAPITOLO 3. METODI PER CALCOLARE I NUMERI CASUALI sono considerati dei buoni generatori di casualità previa richiesta, essi lo diventano nel contesto dei giochi di strategia. L utilizzo dell entropia umana nel gioco per la generazione di casualità è stata studiata da Ran Halprin e Moni Naor. É possibile provare il loro generatore all indirizzo I numeri casuali sono generati dall Atari 8-bit misurando del rumore casual su un circuito elettronico e convertendo questo valore tra zero e 65,535. Questo valore viene poi diviso per 65,536 per produrre un risultato tra zero e uno. I numeri casuali così generati sono eccellenti, ma non sono ripetibili; questo significa che facendo girare un programma il cui risultato dipende da numeri casuali, non si è in grado di riprodurre gli stessi risultati. 3.2 Computazionali I numeri casuali possono generati computazionalmente: dato un valore iniziale(seme) si procede seguendo un algoritmo: le sequenze cosí ottenute sono pseudo-casuali, ossia dato lo stesso seme e lo stesso numero di iterazioni si raggiunge lo stesso risultato. Inoltre questi generatori sono caratterizzati da una periodicità strettamente legata all algoritmo e ai parametri utilizzati Middle Square Questo metodo fu inventato da Jon von Neumann nel 1946 per la produzione di numeri casuali. Si prende un seme di m cifre, lo si eleva al quadrato e l elemento successivo della sequenza sarà quello ottenuto dalle m cifre centrali, come mostrato nell esempio: a 0 è il seme iniziale. a n = a 2 n = a n+1 = m è il numero di cifre che compongono il numero (deve essere pari) Questo non è un buon generatore di numeri casuali; inoltre se lo zero compare come una delle cifre della sequenza, esso continuerà a ripetersi. Non si tratta di un generatore periodico, esso terminerà quando si arriverà a zero. perché lo zero influenza molto il comportamento del generatore, nella simulazione viene richiesto che almeno il seme venga inizializzato con cifre 0.

11 3.2. COMPUTAZIONALI 9 Figura 3.1: 50 estrazioni con il generatore Middle Square Lineare Congruenziale Nel 1948 venne proposto un generatore di numeri casuali distribuiti uniformemente detto generatore lineare congruenziale o più brevemente LCG che a tutt oggi è ancora utilizzato. Tale generatore venne presentato per la prima volta dal matematico D.H. Lemer esperto di teoria dei numeri. Il metodo LCG ha bisogno di un seme per inizializzare la sequenza di numeri secondo la seguente regola: x n+1 = (ax n + c) mod m, n 0 x n è la sequenza dei valori pseudo-casuali a è il moltiplicatore compreso tra 0 e m c è l incremento anch esso compreso tra 0 e m. Il periodo di un LCG generico è al massimo m, e in alcuni casi molto inferiore ad esso. Questa caratteristica evidenzia uno svantaggio nell utilizzo di questo metodo ovvero la periodicità molto piccola, come mostrato in figura 1. LCG avrà un intero periodo se e solo se: c e m sono primi tra loro a 1 è divisibile per tutti i numeri primi in m a 1 è multiplo di 4 se m è multiplo di 4 LCG aumenta la sua efficenza quando m equivale ad una potenza di 2, solitamente 2 32 o 2 64, questo permette che il modulo sia calcolato soltanto troncando i 32 o 64 bit più a destra.

12 10 CAPITOLO 3. METODI PER CALCOLARE I NUMERI CASUALI Figura 3.2: 40 estrazioni con il generatore Lineare Congruenziale, con M=16, a=5, c=3 I generatori lineari congruenziali sono semplici da implementare e la loro esecuzione è veloce. Adatti per sistemi con un quantitativo di memoria limitato, vengono utilizzati spesso nello sviluppo di videogiochi. Di contro presenta alcuni svantaggi nel caso in cui ad una applicazione servisse una casualità di alta qualità. Ad esempio non è utilizzabile nell ambito della crittografia o nei metodi per trarre stime attraverso simulazione, come nel caso del metodo Monte Carlo Congruenziale Quadratico La sequenza di numeri è generata secondo la seguente regola: a è un moltiplicatore. b è un secondo moltiplicatore. c è un incremento. X n = (a X 2 n 1 + b X n 1 + c) mod m m 1 è il massimo numero generabile. Per quanto concerne la periodicità di questo generatore, è al massimo m.

13 3.2. COMPUTAZIONALI 11 Figura 3.3: 50 estrazioni con il generatore Congruenziale Quadratico con valori: seme=13 a=2 b=3 c=1 m= Inverso Congruenziale Ricorsivo Una variante al generatore LCG è il generatore inverso congruenziale (ICG) creato da Eichenauer e Lehn nel Questo generatore è di tipo non-lineare congruenziale e si può incontrare in tre versioni: 1. ricorsivo, trattato qui di seguito 2. esplicito 3. composto, che permette di comporre i metodi precedenti La sequenza di numeri viene generata secondo la seguente regola: X n+1 = (ax 1 n + c) mod m, n 0 X n è la sequenza dei valori pseudo-casuali. X 1 n è l inverso moltiplicativo modulo m di X n+1. a è il moltiplicatore compreso tra 0 e m. c è l incremento anch esso compreso tra 0 e m. m 1 è il numero massimo che è possibile generare e m è primo. Per quanto concerne la periodicità di questo generatore, è al massimo m, e in alcuni casi molto inferiore ad esso. L andamento periodico di questo generatore è mostrato nella figura sottostante. Per ottenere la massima periodicità bisogna scegliere accuratamente i valori di a e c, di modo che il polinomio x 2 cx a sia primitivo nel campo Zm.

14 12 CAPITOLO 3. METODI PER CALCOLARE I NUMERI CASUALI Figura 3.4: 50 estrazioni con il generatore Congruenziale Inverso, con M=17, a=10, c=1, seme iniziale= Inverso Congruenziale Esplicito In linea generale, l EICG si può considerare il fratello del ICG, insieme al quale forma la versione composta. Creato da Eichenauer e Herrmann nel 1993, l EICG è piú facile da trattare in pratica perché non prevede la ricorsione. La sequenza di numeri viene generata secondo la seguente regola: X n = (a (n + n 0 ) + c) 1 mod m, n 0 X n è la sequenza dei valori pseudo-casuali. n 0 è il valore iniziale, il seme. a è il moltiplicatore compreso tra 0 e m. c è l incremento anch esso compreso tra 0 e m. m 1 è il numero massimo che è possibile generare e m è primo. La periodicità di questo generatore è come mostrato nella figura sottostante. Figura 3.5: 50 estrazioni con il generatore Congruenziale Inverso Esplicito, con M=17, a=10, c=1, seme iniziale=10

15 3.2. COMPUTAZIONALI Inverso Congruenziale Composto Eichenauer-Herrmann hanno introdotto un semplice modo per combinare i generatori inversi, denominato metodo composto. Il metodo composto permette di unire ICG e EICG, se hanno periodo completo. Dati p 1, p 2,..., p r numeri primi e distinti, ciascuno p j 5. Per ogni indice j, 1 j r, (y n (j) ) con n 0 sia una sequenza di elementi di Z pj puramente periodica di periodo p j. Dato (x (j) n )n 0 il numero pseudo-casuale in [0, 1[ ottenuto tramite: x (j) n y n (j) /p j dove n 0 e 1 j r La sequenza x n con n 0 del numero pseudo-casuale composto s in [0, 1[ è definito dalla congruenza Per valori non normalizzati in [0,1]: x n x 1 n x r n(mod1), n 0 y n y 1 n y r n, n 0 In parole povere, possiamo fare ICG composti oppure EICG composti. Nel primo caso, prendiamo r generatori ICG, ognuno caratterizzato dal proprio valore p, moltiplicatore a, accomulatore c e seme iniziale. Ad ogni iterazione, calcoliamo il valore y i per ogni generatore. Se volessimo normalizzare il risultato nell intervallo [0,1] lo dividiamo per il relativo p, di modo da ottenere un valore tra 0 e 1 che chiameremo x i. Infine sommiamo il valore di x i (o di y i se non consideriamo valori normalizzati) per ogni generatore. Per i valori normalizzati trasformeremo il valore ottenuto considerando solo le cifre dopo la virgola. Discorso analogo vale per la composizione di EICG. Il periodo della sequenza (x n ) con n 0 è uguale a M := p 1... p r, come mostrato in figura. Figura 3.6: Estrazioni con il generatore Congruenziale Inverso Composto, con ICG1(M=17, a=10, c=1, seme iniziale=15) e ICG2(M=101, a=15, c=1, seme iniziale=50); periodo 17*101=1717

16 14 CAPITOLO 3. METODI PER CALCOLARE I NUMERI CASUALI Fibonacci Ritardato Un generatore di Fibonacci ritardato (LFG, dall inglese Lagged Fibonacci Generator) è un algoritmo per la generazione di numeri pseudo-casuali basato su una generalizzazione della Successione di Fibonacci. Dalla definizione della successione di Fibonacci: F n = F n 1 + F n 2 Similmente, il generatore è definito come: F n = F n j F n k mod m, 0 j k F n è la sequenza dei valori pseudo-casuali. m solitamente è una potenza di 2 (m = 2 M ). è una qualsiasi operazione binaria (addizione, sottrazione, moltiplicazione, ma anche un or-esclusivo). j e k sono due indici che servono a individuare 2 termini precedenti. La teoria di questo tipo di generatore è piuttosto complessa e non può essere sufficiente scegliere i valori casuali per j ed il k, a tale scopo esistono coppie di valori noti. Questi generatori inoltre tendono ad essere molto sensibili alla fase di inizializazione, in particolare i primi k numeri è buona norma siano dispari. Per quanto concerne la periodicità di questo generatore: - (2 k 1) 2 M 1 nel caso di addizione o sottrazione - (2 k 1) nel caso di or-esclusivo - (2 k 1) 2 M 3 nel caso di moltiplicazione Un esempio che illustra la periodicità è mostrato nella figura seguente: Registro a Scorrimento a Retroazione Lineare Il registro a scorrimento a retroazione lineare (linear feedback shift register, LFSR) è una tipologia di registri di traslazione i cui dati in ingresso sono prodotti da una funzione lineare dello stato interno, in particolare questa funzione è l or esclusivo (xor) di alcuni bit memorizzati all interno dei registri. Anche questo generatore necessita di un seme, e perché l operazione del registro è deterministica, la sequenza di valori prodotta dal registro è completamente determinata dal suo stato corrente o precedente. Allo stesso modo, perché il registro ha un numero finito di stati possibili, prima o poi i valori in uscita si ripetono; ciò nonostante, un LFSR con una funzione di retroazione ben scelta può produrre una sequenza di bit che appare casuale ed ha

17 3.2. COMPUTAZIONALI 15 Figura 3.7: 50 estrazioni con il generatore di Fibonacci Ritardato, con M=16, j=2, k=3 e operatore * un periodo molto lungo. La lista di posizioni dei bit che influenza lo stato successivo è detta sequenza di tap. Un LFSR massimale produce una sequenza-n (cioè passa attraverso tutti i possibili stati del registro di traslazione tranne quello che produce tutti zeri).non è possibile usare come stato iniziale o intermedio lo zero perché produrrebbe da quel punto in poi solo zeri. La sequenza di tap di un LFSR può essere rappresentata come un polinomio modulo 2. Questo significa che i coefficienti del polinomio devono essere 1 o 0. Questo è noto come polinomio di retroazione o polinomio caratteristico. Ad esempio, se i tap sono al 4 o e 3 o bit, il polinomio LFSR relativo è : x 4 + x Il termine noto del polinomio non corrisponde a un tap. Proprietà : Se e solo se il polinomio è primitivo, allora LFSR è massimale L LFSR sarà massimale solo se il numero di tap è pari I valori dei tap in un LFSR massimale sono primi tra loro Ci può essere piú di una sequenza di tap che rende massimale un LFSR di lunghezza fissata Una volta trovata una sequenza di tap massimale, se ne può trovare un altra con un procedimento automatico: se la sequenza di tap, in un LFSR a n bit, è [n, A, B, 0] (dove 0 rappresenta il termine noto x 0 = 1), la sua sequenza speculare è [n, n C, n B, n A, 0]. Entrambe producono un LFSR massimale. Il funzionamento del generatore è mostrato nella figura sottostante, che considera come seme iniziale il numero 12, un registro di 4 bit e 4 o e 3 o bit come tap:

18 16 CAPITOLO 3. METODI PER CALCOLARE I NUMERI CASUALI Figura 3.8: funzionamento registro a scorrimento a retroazione lineare Per quanto concerne la periodicità, nn LFSR a N bit genera (2 N 1) numeri interi diversi prima di ripetere la sequenza, come mostrato in figura. Figura 3.9: 50 estrazioni con il generatore Registro di Traslazione a Retroazione Lineare, con N=4, tap=4 o e 3 o bit, seme=9

19 3.3. CRITTOGRAFICI Crittografici Un generatore di numeri pseudocasuali crittograficamente sicuro (detto in genere CSPRNG da Cryptographically Secure Pseudo-random Number Generator è un generatore di numeri pseudocasuali le cui proprietà lo rendono adatto all uso in crittografia. Molti aspetti della crittografia richiedono numeri casuali, ad esempio: Generazione di chiavi Generazione di chiavi di sessione (detti nonce) salti casuali richiesti da alcuni schemi di firma, come ECDSA, RSASSA-PSS One-time pad La qualità della casualità per queste applicazioni è varia. Per la generazione di un nonce può essere richiesta solo l unicità del numero generato. Per la creazione di una chiave è richiesta una qualità maggiore. Nel caso di one-time pad, la garanzia che il testo crittografato non sia violabile dipende unicamente dal fatto che la sorgente casuale utilizzata sia totalmente impredicibile. Idealmente la generazione di numeri casuali utilizza l entropia ottenuta da un altra sorgente, come un generatore di numeri casuali hardware o qualche processo impredicibile, anche se sono state trovate correlazioni inaspettate in processi di questo tipo. Da un punto di vista teorico la quantità di casualità l entropia che può essere generata da un sistema è uguale all entropia che è entrata nel sistema. Nella pratica però spesso sono necessari più numeri casuali di quelli che possono essere recuperati da una fonte di entropia. In questi casi vengono utilizzati i CSPRNG, che distribuiscono l entropia su più bit. Le specifiche richieste da un normale generatore di numeri pseudocasuali (PRNG) sono soddisfatte anche da un CSPRNG, ma non è vero l inverso. Le specifiche soddisfatte da un CSPRNG si dividono in due gruppi: il primo è che abbiano buone proprietà statistiche (cioè che passino i test i casualità), il secondo è che resistano bene agli attacchi, anche nel caso in cui vengano scoperte parte delle variabili che dovrebbero rimanere segrete. La maggior parte dei generatori di numeri pseudocasuali non sono utilizzabili come CSPRNG perché, pur soddisfacendo i test statistici, non sono progettati per resistere ad attacchi matematici appositamente studiati Blum Blum Shub L algoritmo Blum Blum Shub (B.B.S.) è un generatore di numeri pseudocasuali proposto nel 1986 da Lenore Blum, Manuel Blum e Michael Shub. Il generatore è definito come: x n+1 = (x n ) 2 mod M

20 18 CAPITOLO 3. METODI PER CALCOLARE I NUMERI CASUALI dove M = pq è il prodotto di 2 numeri primi molto grandi p e q, congruenti a 3 (mod 4) e l output è il bit meno significativo di x n+1 o la parità di x n+1 Di seguito vengono descritti i passi dell algoritmo: 1. Vengono scelti 2 numeri primi casuali p e q molto grandi, entrambi congruenti a 3 modulo 4 e si calcola M = pq 2. Viene scelto un numero casuale s, detto seme, primo con M e appartenente all intervallo [1, M 1]. Si calcola x 0 = s 2 mod M 3. Per i che va da 1 a l (con l pari al numero di numeri casuali che si vogliono generare) si eseguono i seguenti passi: (a) x i = (x i 1 ) 2 mod M (b) z i = il bit meno significativo di x i 4. Il risultato dell algoritmo è la sequenza di bit z 1, z 2,...z i Esempio: M = p q = 7 19 = 133 s=100 x 0 = mod 133 = 25 x 1 = 25 2 mod 133 = 93 x 2 = 93 2 mod 133 = 4 x 3 = 4 2 mod 133 = 16 x 4 = 16 2 mod 133 = 123 l output sarà 1, 0, 0, 1 Questo algoritmo non può essere usato per delle simulazioni a causa della sua lentezza, ma si presta molto bene all utilizzo nel campo della crittografia in particolar modo nel campo della crittografia a chiave pubblica Fortuna Le parti fondamentali di fortuna sono 3: 1. il generatore prende il seme di lunghezza fissa e genera quantità arbitrarie di dati pseudocasuali;(nel dettaglio viene spiegato in seguito) 2. accumulatore raccoglie e capitalizza l entropia da varie fonti (tastiera, mouse, risposte dei dischi rigidi e stampati...) e a volte cambia il seme al generatore; 3. controllo sul file del seme che assicura che il PRNG possa generare dati casuali anche al primo avvio del computer.

21 3.3. CRITTOGRAFICI 19 Descriviamo di seguito il generatore vero e proprio. Il suo stato interno è composto da una chiave di 256 bit per il codice a blocchi (AES, Serpent o Twofish) e da un contatore di 128 bit. Se un utente o un applicazione richiede dati casuali, il generatore esegue il suo algoritmo e genera dati pseudocasuali. Per evitare che subito dopo un attacker comprometta lo stato del generatore per inferire i dati appena trasmessi, il generatore dopo ogni richiesta genera 256 bit supplementari di dati pseudocasuali e li utilizza come nuova chiave del codice a blocchi. è possibile quindi mettere da parte la vecchia chiave, scongiurando ogni possibile fuga di informazioni sulle richieste precedenti. Consideriamo per esempio un programma che effettua una simulazione: vogliamo che la simulazione sia davvero casuale, ma vogliamo anche essere in grado di ripetere uno stesso calcolo, magari solo per scopi di debugging e test. Una buona soluzione consiste nel chiamare il generatore di numeri casuali del sistema operativo una volta, all inizio del programma, per ottenere un seme; tale seme può essere trascritto come parte dell output del simulatore e da esso generatore potrebbe generare tutti i dati casuali necessari alla simulazione. La conoscenza del seme originale del generatore ci consente anche di verificare tutti i calcoli, rieseguendo il programma con gli stessi input e lo stesso seme. Il funzionamento vero e proprio è il seguente: 1. inizializzazione: questa fase è piuttosto semplice: impostiamo la chiave (K) e il contatore(c) a zero, per indicare che il generatore non ha ancora ricevuto un seme. (K, C) (0, 0); impacchettare lo stato (S) S (K, C); 2. Rinnovo del seme: aggiorna lo stato con una stringa di input arbitraria.per mescolare in modo esauriente dell input con la chiave esistente, utilizziamo una funzione di hashing (per esempio SHA). Incrementiamo inoltre il contatore per indicare al generatore l avvenuto rinnovo del seme. s è un nuovo seme o seme aggiuntivo K SHA(K s); C C + 1; 3. generazione dei blocchi: questa funzione genera un certo numero di blocchi di output casuali. Essa è una funzione interna utilizzata soltanto dal generatore: qualsiasi altra entità esterna al PRNG non dovrebbe essere in grado di chiamarla. k è il numero di blocchi da generare r è una stringa pseudocasuale di 16*k byte r ε per cominciare con la stringa vuota

22 20 CAPITOLO 3. METODI PER CALCOLARE I NUMERI CASUALI La funzione E è quella di codifica del codice a blocchi, con chiave K e contatore C. f ori(1...n)r r E(K, C) appendere i blocchi necessari C C + 1 return r 4. generazione di dati casuali.questa funzione genera dati casuali su richiesta dell utente del generatore. n numero di byte da generare r stringa pseudocasuale di n byte r primi n byte(generablocchi(s, ceil[n/16])) Passare una nuova chiave per evitare in seguito che questo output possa essere compromesso: K GeneraBlocchi(S, 2) genero 2 blocchi per ottenere una nuova chiave return r

23 Capitolo 4 Test Come possiamo sapere se un generatore di numeri pseudo-casuali è un buon generatore? La risposta è: applicando test statistici. Se la sequenza di numeri generata supera determinati test come se fosse una sequenza veramente casuale allora abbiamo un buon generatore. Un test statistico di solito si esegue come segue: 1. Ipotesi nulla: è essenziale che quel che supponiamo sia vero (per esempio, la sequenza di bit osservata appare casuale) 2. Raccogliere qualche dato (per esempio, un campione della sequenza) 3. Eseguire il test (a) Rifiutiamo l ipotesi nulla se i dati non la confermano (per esempio, il risultato non è all interno di un determinato intervallo di valori 4. Se l ipotesi nulla è vera, allora il test statistico eseguito deve seguire una data distribuzione statistica Distribuzione Normale Chi-Quadro In questo modo sappiamo se i risultati sono nell intervallo esatto Quando testiamo un hardware o software a fini crittografici, molti si soffermano sul generatore di dati pseudo-casuali, perché è l oggetto in cui piú probabilmente si possono avere problemi. Lo standard federale US (FIPS 140-1) specifica i valori ammissibili per un buon generatore, in una batteria di 4 test (frequency, poker, runs, long run test). I test vengono eseguiti su campioni di bit e se non vengono superati tutti il generat ore non è considerato valido. 21

24 22 CAPITOLO 4. TEST 4.1 Frequency Test Questo test valuta se il numero di 0 e di 1 prodotti dal generatore sono approssimativamente lo stesso valore, secondo la formula: X 1 = (n 0 n 1 ) 2 n n 0 = il numero di occorrenze di 0 nella sequenza n 1 = il numero di occorrenze di 1 nella sequenza n = il numero totale di bit Ci aspettiamo che il valore di X 1 si avvicini allo 0 se la sequenza è veramente casuale. A volte questo test è anche chiamato Monobit Test. Formalmente X 1 deve seguire la distribuzione del Chi-Quadro con 1 grado di libertà. Esempio: Consideriamo la sequenza s (non casuale) di lunghezza n=160 ottenuta ripetendo 4 volte la stessa sequenza: s= n 0 = 84 n 1 = 76 X 1 =0.4 Dal risultato non abbiamo ragione di pensare che la sequenza non sia casuale secondo il Frequency Test, quindi accettiamo l ipotesi. FIPS richiede che il numero di 1 sia nell intervallo ( ) su bit totali nel campione. 4.2 Serial Test Questo test determina se il numero di occorrenze di 00,01,10,11 come sottosequenze anche sovrapposte di S sia all incirca lo stesso. X 2 = 4 n 1 (n n n n 2 11) 2 n (n2 0 + n 2 1) + 1 n 0 = il numero di occorrenze di 0 nella sequenza n 1 = il numero di occorrenze di 1 nella sequenza n è il numero totale di bit

25 4.3. POKER TEST 23 n 00 = il numero di occorrenze di 00 nella sequenza n 01 = il numero di occorrenze di 01 nella sequenza n 10 = il numero di occorrenze di 10 nella sequenza n 11 = il numero di occorrenze di 11 nella sequenza Formalmente, X2 deve seguire la distribuzione del Chi-Quadro con 2 gradi di libertà Esempio: Consideriamo la sequenza s (non casuale) di lunghezza n=160 ottenuta ripetendo 4 volte la tessa sequenza: s= n 0 = 84 n 1 = 76 n 00 = 44 n 01 = 40 n 10 = 40 n 11 = 35 X 2 = 0,6252 Dal risultato non abbiamo ragione di pensare che la sequenza non sia casuale secondo il Serial Test, quindi accettiamo l ipotesi. 4.3 Poker Test Questo test divide la sequenza S in k sottostringhe di lunghezza m, si contano poi le occorrenze per ciascuno dei m 2 possibili valori di m bit. X 3 = 2m k ( 2 m i=1 n 2 i ) + k n i = il numero di occorrenze di i-esimo tipo, dove 1 i 2 m nella sequenza ogni sottosequenza k corrisponde ad una differente mano di poker Formalmente, X 3 deve seguire la distribuzione del Chi-Quadro, con 2 m 1 gradi di libertà. Se m = 1 il Poker Test si riduce ad essere un Frequency Test. Esempio: Consideriamo la sequenza s (non casuale) di lunghezza n=160 ottenuta ripetendo 4 volte la stessa sequenza: s=

26 24 CAPITOLO 4. TEST m = 3 e k = 53 n 1 =occorrenze di n 2 =occorrenze di n 3 =occorrenze di n 4 =occorrenze di n 5 =occorrenze di n 6 =occorrenze di n 7 =occorrenze di n 8 =occorrenze di X 3 = 9,6415 La soglia per 7 gradi di libertà è 14,06, per cui non abbiamo ragione per rifiutare l ipotesi secondo il Poker Test. Lo standard FIPS prevede m = 4 e 1, 03 X 3 57, Autocorrelation Test Questo test considera la sequenza s di n bit e le versioni shiftate(spostate di d posizioni) di essa (in maniera non ciclica). Il numero di bit in s non uguali nelle loro versioni spostate è: A(d) = n d 1 i=0 s i s i+d L Autocorrelation Test si calcola secondo la formula: X 4 = (A(d) n d 2 )/ n d Valore di shift: 1 d [n/2] Formalmente, X deve seguire la distribuzione normale N(0, 1). Il valore soglia è ± 1,96. Esempio: Consideriamo la sequenza s (non casuale) di lunghezza n=160 ottenuta ripetendo 4 volte la stessa sequenza: s= Supponiamo: d = 8 A(8) = 100 Il valore di X è 3,8933

27 4.5. RUNS TEST 25 perché questo risultato non è valido per l Autocorrelation Test rifiutiamo l ipotesi e affermiamo che la sequenza probabilmente non è casuale. 4.5 Runs Test Questo test si prefigge di valutare se le sottosequenze di 0 e di 1 contigui seguono la frequenza attesa. Il valore atteso di blocchi (sequenze di 1) o gaps (sequenze di 0) di lunghezza i in una sequenza casuale binaria è: e i = (n i + 3)/2 i+2 Il Runs Test si calcola secondo la formula: X 5 = k i=1 (B i e i ) 2 e i + k i=1 (G i e i ) 2 e i k = l intero più grande per cui e i 5 B i = il numero di blocchi di lunghezza i in s G i = il numero di gap di lunghezza i in s Formalmente, X 5 deve seguire la distribuzione del Chi-Quadro con 2k 1 gradi di libertà. Esempio: Consideriamo la sequenza s (non casuale) di lunghezza n=160 ottenuta ripetendo 4 volte la tessa sequenza: s= k = 3 e 1 = 20,25 e 2 = 10,0625 e 3 = 5 Ci sono 25, 4, 5 blocchi rispettivamente di lunghezza 1, 2, 3 Ci sono 8, 20, 12 gaps rispettivamente di lunghezza 1, 2, 3 X 5 = 31,7913 La soglia per 4 gradi di libertà è 9,49, per cui possiamo affermare che il Runs Test non è valido e rifiutiamo l ipotesi e affermiamo che la sequenza probabilmente non è casuale. Lo standard FIPS prevede che per 1 i 6 B i e G i devono soddisfare i seguenti intervalli:

28 26 CAPITOLO 4. TEST G 1,B 1 [2267, 2733] G 2,B 2 [1079, 1421] G 3,B 3 [502, 748] G 4,B 4 [223, 402] G 5,B 5 [90, 223] G 6,B 6 [90, 223]

29 Capitolo 5 Conclusioni Per generare sequenze di numeri casuali tramite TRNG (true random number generator) ci vuole un generatore hardware di numeri casuali che generalmente sono basati su fenomeni microscopici come il rumore termico, l effetto fotoelettrico o il decadimento dell uranio o del cesio radioattivo. Un computer può essere in grado di generare solo PRNG (pseudo random number generator) che devono essere inizializzati assegnando un opportuno valore a un parametro numerico (il cosiddetto seme). Solitamente viene usato il timestamp del momento in cui viene richiesta la sequenza di numeri casuali. Se da un lato generare una sequenza PRNG è semplice e manterrà le caratteristiche di equidistribuzione ed indipendenza fra due elementi consecutivi, potrà comunque risultare in qualche modo prevedibile; dall altro lato procurarsi un generatore hardware di numeri casuali è molto complesso e il suo utilizzo è lento. Una giusta via di mezzo, che dovrebbe combinare i vantaggi dei due metodi, potrebbe essere quello di sfruttare i PRNG con algoritmi difficilmente predicibili e inizializzandoli con semi generati da un TRNG. In alcuni casi l algoritmo prevede di usare, oltre alla computazione vera e propria, la raccolta di dati sull entropia del sistema (movimenti del mouse, richieste ai dischi, pressione dei tasti della tastiera) per rendere impredicibile la sequenza dei numeri generati. Le caratteristiche che deve avere un buon generatore di sequenze pseudocasuali: Ripetibilità, affinchè sia possibile ripetere gli stessi esperimenti piú volte Soddisfacimento dei test: servono per verificare che il generatore sia quanto piú simile ad un generatore di numeri casuali ideale. Semplicità e rapidità: un simulatore che usa il generatore risulta quindi efficiente. Periodicità lunga, in modo da poter effettuare simulazioni lunghe senza riutilizzare piú volte la stessa sequenza. 27

30 28 CAPITOLO 5. CONCLUSIONI Portabilità, cioè rendere l implementazione del generatore indipendente dalla piattaforma.

31 Bibliografia [1] Wikipedia, Random Number Generation, number generation [2] Zvi Gutterman, Benny Pinkas, Tzachy Reinman, Analysis of the Linux Random Number Generator, [3] Wikipedia, Lagged Fibonacci generator, Fibonacci generator [4] Wikipedia, Linear congruential generator, congruential generator [5] Blum Blum Shub Generator, akapadia/project2/node11.html [6] Niels Ferguson, Bruce Schneier Crittografia Pratica, p [7] Peter Hellekalek, Inversive Generators, [8] Wikipedia, Linear Feedback Shift Register, feedback shift register [9] B. Warinschi, N.P. Smart, COMSM2004 : Random Streams of Bits, 3x3.pdf [10] Wikipedia, Statistical Randomness, randomness [11] Michael Mascagni, Shaharam Rahimi, Parallel inversive congruential generators: Software and field-programmable gate array implementations, mascagni/papers/ricp pdf 29

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Dettagli

Introduzione all analisi dei segnali digitali.

Introduzione all analisi dei segnali digitali. Introduzione all analisi dei segnali digitali. Lezioni per il corso di Laboratorio di Fisica IV Isidoro Ferrante A.A. 2001/2002 1 Segnali analogici Si dice segnale la variazione di una qualsiasi grandezza

Dettagli

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................

Dettagli

Probabilità discreta

Probabilità discreta Probabilità discreta Daniele A. Gewurz 1 Che probabilità c è che succeda...? Una delle applicazioni della combinatoria è nel calcolo di probabilità discrete. Quando abbiamo a che fare con un fenomeno che

Dettagli

Matematica generale CTF

Matematica generale CTF Successioni numeriche 19 agosto 2015 Definizione di successione Monotonìa e limitatezza Forme indeterminate Successioni infinitesime Comportamento asintotico Criterio del rapporto per le successioni Definizione

Dettagli

Probabilità condizionata: p(a/b) che avvenga A, una volta accaduto B. Evento prodotto: Evento in cui si verifica sia A che B ; p(a&b) = p(a) x p(b/a)

Probabilità condizionata: p(a/b) che avvenga A, una volta accaduto B. Evento prodotto: Evento in cui si verifica sia A che B ; p(a&b) = p(a) x p(b/a) Probabilità condizionata: p(a/b) che avvenga A, una volta accaduto B Eventi indipendenti: un evento non influenza l altro Eventi disgiunti: il verificarsi di un evento esclude l altro Evento prodotto:

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

I sistemi di numerazione

I sistemi di numerazione I sistemi di numerazione 01-INFORMAZIONE E SUA RAPPRESENTAZIONE Sia dato un insieme finito di caratteri distinti, che chiameremo alfabeto. Utilizzando anche ripetutamente caratteri di un alfabeto, si possono

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma

Dettagli

Dimensione di uno Spazio vettoriale

Dimensione di uno Spazio vettoriale Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione

Dettagli

Testi di Esercizi e Quesiti 1

Testi di Esercizi e Quesiti 1 Architettura degli Elaboratori, 2009-2010 Testi di Esercizi e Quesiti 1 1. Una rete logica ha quattro variabili booleane di ingresso a 0, a 1, b 0, b 1 e due variabili booleane di uscita z 0, z 1. La specifica

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

SISTEMI DI NUMERAZIONE E CODICI

SISTEMI DI NUMERAZIONE E CODICI SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema

Dettagli

SEQUENZE DI NUMERI PSEUDO- CASUALI

SEQUENZE DI NUMERI PSEUDO- CASUALI SEQUENZE DI NUMERI PSEUDO- CASUALI Test Statistici sulle Sequenze Pseudo Casuali E di fondamentale importanza per una buona riuscita della SIMULAZIONE ( affidabilità dei risultati), che le sequenze pseudo

Dettagli

Librerie digitali. Video. Gestione di video. Caratteristiche dei video. Video. Metadati associati ai video. Metadati associati ai video

Librerie digitali. Video. Gestione di video. Caratteristiche dei video. Video. Metadati associati ai video. Metadati associati ai video Video Librerie digitali Gestione di video Ogni filmato è composto da più parti Video Audio Gestito come visto in precedenza Trascrizione del testo, identificazione di informazioni di interesse Testo Utile

Dettagli

la scienza della rappresentazione e della elaborazione dell informazione

la scienza della rappresentazione e della elaborazione dell informazione Sistema binario Sommario informatica rappresentare informazioni la differenza Analogico/Digitale i sistemi di numerazione posizionali il sistema binario Informatica Definizione la scienza della rappresentazione

Dettagli

Informatica. Rappresentazione dei numeri Numerazione binaria

Informatica. Rappresentazione dei numeri Numerazione binaria Informatica Rappresentazione dei numeri Numerazione binaria Sistemi di numerazione Non posizionali: numerazione romana Posizionali: viene associato un peso a ciascuna posizione all interno della rappresentazione

Dettagli

SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE

SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE La base del sistema decimale è 10 I simboli del sistema decimale sono: 0 1 2 3 4 5 6 7 8 9 Il sistema di numerazione decimale è un sistema posizionale. L aggettivo

Dettagli

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.

Dettagli

1 Serie di Taylor di una funzione

1 Serie di Taylor di una funzione Analisi Matematica 2 CORSO DI STUDI IN SMID CORSO DI ANALISI MATEMATICA 2 CAPITOLO 7 SERIE E POLINOMI DI TAYLOR Serie di Taylor di una funzione. Definizione di serie di Taylor Sia f(x) una funzione definita

Dettagli

Algoritmi e strutture dati. Codici di Huffman

Algoritmi e strutture dati. Codici di Huffman Algoritmi e strutture dati Codici di Huffman Memorizzazione dei dati Quando un file viene memorizzato, esso va memorizzato in qualche formato binario Modo più semplice: memorizzare il codice ASCII per

Dettagli

Il concetto di valore medio in generale

Il concetto di valore medio in generale Il concetto di valore medio in generale Nella statistica descrittiva si distinguono solitamente due tipi di medie: - le medie analitiche, che soddisfano ad una condizione di invarianza e si calcolano tenendo

Dettagli

Analisi di dati di frequenza

Analisi di dati di frequenza Analisi di dati di frequenza Fase di raccolta dei dati Fase di memorizzazione dei dati in un foglio elettronico 0 1 1 1 Frequenze attese uguali Si assuma che dalle risposte al questionario sullo stato

Dettagli

Corso di Laurea in Scienze e Tecnologie Biomolecolari. NOME COGNOME N. Matr.

Corso di Laurea in Scienze e Tecnologie Biomolecolari. NOME COGNOME N. Matr. Corso di Laurea in Scienze e Tecnologie Biomolecolari Matematica e Statistica II Prova di esame del 18/7/2013 NOME COGNOME N. Matr. Rispondere ai punti degli esercizi nel modo più completo possibile, cercando

Dettagli

Esercizi di Probabilità e Statistica

Esercizi di Probabilità e Statistica Esercizi di Probabilità e Statistica Samuel Rota Bulò 19 marzo 2007 Spazi di probabilità finiti e uniformi Esercizio 1 Un urna contiene due palle nere e una rossa. Una seconda urna ne contiene una bianca

Dettagli

Uso di base delle funzioni in Microsoft Excel

Uso di base delle funzioni in Microsoft Excel Uso di base delle funzioni in Microsoft Excel Le funzioni Una funzione è un operatore che applicato a uno o più argomenti (valori, siano essi numeri con virgola, numeri interi, stringhe di caratteri) restituisce

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

Calcolo delle probabilità

Calcolo delle probabilità Calcolo delle probabilità Laboratorio di Bioinformatica Corso A aa 2005-2006 Statistica Dai risultati di un esperimento si determinano alcune caratteristiche della popolazione Calcolo delle probabilità

Dettagli

come nasce una ricerca

come nasce una ricerca PSICOLOGIA SOCIALE lez. 2 RICERCA SCIENTIFICA O SENSO COMUNE? Paola Magnano paola.magnano@unikore.it ricevimento: martedì ore 10-11 c/o Studio 16, piano -1 PSICOLOGIA SOCIALE COME SCIENZA EMPIRICA le sue

Dettagli

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

u 1 u k che rappresenta formalmente la somma degli infiniti numeri (14.1), ordinati al crescere del loro indice. I numeri u k

u 1 u k che rappresenta formalmente la somma degli infiniti numeri (14.1), ordinati al crescere del loro indice. I numeri u k Capitolo 4 Serie numeriche 4. Serie convergenti, divergenti, indeterminate Data una successione di numeri reali si chiama serie ad essa relativa il simbolo u +... + u +... u, u 2,..., u,..., (4.) oppure

Dettagli

Come masterizzare dischi con Nero 11

Come masterizzare dischi con Nero 11 Come masterizzare dischi con Nero 11 Non c è dubbio che Nero è diventato un sinonimo di masterizzatore di dischi, data la lunga esperienza sul mercato. Molte persone pensano in questo programma nel momento

Dettagli

matematica probabilmente

matematica probabilmente IS science centre immaginario scientifico Laboratorio dell'immaginario Scientifico - Trieste tel. 040224424 - fax 040224439 - e-mail: lis@lis.trieste.it - www.immaginarioscientifico.it indice Altezze e

Dettagli

Test statistici di verifica di ipotesi

Test statistici di verifica di ipotesi Test e verifica di ipotesi Test e verifica di ipotesi Il test delle ipotesi consente di verificare se, e quanto, una determinata ipotesi (di carattere biologico, medico, economico,...) è supportata dall

Dettagli

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput Valutazione delle Prestazioni Architetture dei Calcolatori (Lettere A-I) Valutazione delle Prestazioni Prof. Francesco Lo Presti Misura/valutazione di un insieme di parametri quantitativi per caratterizzare

Dettagli

CONTROLLO IN TENSIONE DI LED

CONTROLLO IN TENSIONE DI LED Applicazioni Ver. 1.1 INTRODUZIONE CONTROLLO IN TENSIONE DI LED In questo documento vengono fornite delle informazioni circa la possibilità di pilotare diodi led tramite una sorgente in tensione. La trattazione

Dettagli

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Scopo della lezione. Informatica. Informatica - def. 1. Informatica Scopo della lezione Informatica per le lauree triennali LEZIONE 1 - Che cos è l informatica Introdurre i concetti base della materia Definire le differenze tra hardware e software Individuare le applicazioni

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella. Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net Prestazioni Si valutano in maniera diversa a seconda dell

Dettagli

Codifiche a lunghezza variabile

Codifiche a lunghezza variabile Sistemi Multimediali Codifiche a lunghezza variabile Marco Gribaudo marcog@di.unito.it, gribaudo@elet.polimi.it Assegnazione del codice Come visto in precedenza, per poter memorizzare o trasmettere un

Dettagli

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Capittol lo 2 Visualizzazione 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Nel primo capitolo sono state analizzate le diverse componenti della finestra di Word 2000: barra del titolo, barra dei menu,

Dettagli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per

Dettagli

Slide Cerbara parte1 5. Le distribuzioni teoriche

Slide Cerbara parte1 5. Le distribuzioni teoriche Slide Cerbara parte1 5 Le distribuzioni teoriche I fenomeni biologici, demografici, sociali ed economici, che sono il principale oggetto della statistica, non sono retti da leggi matematiche. Però dalle

Dettagli

La distribuzione Normale. La distribuzione Normale

La distribuzione Normale. La distribuzione Normale La Distribuzione Normale o Gaussiana è la distribuzione più importante ed utilizzata in tutta la statistica La curva delle frequenze della distribuzione Normale ha una forma caratteristica, simile ad una

Dettagli

Più processori uguale più velocità?

Più processori uguale più velocità? Più processori uguale più velocità? e un processore impiega per eseguire un programma un tempo T, un sistema formato da P processori dello stesso tipo esegue lo stesso programma in un tempo TP T / P? In

Dettagli

Introduzione al MATLAB c Parte 2

Introduzione al MATLAB c Parte 2 Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione

Dettagli

SPC e distribuzione normale con Access

SPC e distribuzione normale con Access SPC e distribuzione normale con Access In questo articolo esamineremo una applicazione Access per il calcolo e la rappresentazione grafica della distribuzione normale, collegata con tabelle di Clienti,

Dettagli

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE LE SUCCESSIONI 1. COS E UNA SUCCESSIONE La sequenza costituisce un esempio di SUCCESSIONE. Ecco un altro esempio di successione: Una successione è dunque una sequenza infinita di numeri reali (ma potrebbe

Dettagli

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro, EXCEL PER WINDOWS95 1.Introduzione ai fogli elettronici I fogli elettronici sono delle applicazioni che permettono di sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area

Dettagli

Parte I. Prima Parte

Parte I. Prima Parte Parte I Prima Parte Capitolo 1 Introduzione generale 1.1 Il problema dell assegnazione Corsi-Borsisti Il problema dell assegnazione delle borse dei corsi ai vari studenti può essere riassunto nei punti

Dettagli

I SISTEMI DI NUMERAZIONE

I SISTEMI DI NUMERAZIONE ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA I SISTEMI DI NUMERAZIONE Prof. G. Ciaschetti Fin dall antichità, l uomo ha avuto il bisogno di rappresentare le quantità in modo simbolico. Sono nati

Dettagli

Cosa è un foglio elettronico

Cosa è un foglio elettronico Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti

Dettagli

II.f. Altre attività sull euro

II.f. Altre attività sull euro Altre attività sull euro II.f È consigliabile costruire modelli in carta o cartoncino di monete e banconote, e farli usare ai bambini in varie attività di classe fin dal primo o al più dal secondo anno.

Dettagli

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati Informatica 3 Informatica 3 LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Modulo 1: Perchè studiare algoritmi e strutture dati Modulo 2: Definizioni di base Lezione 10 - Modulo 1 Perchè

Dettagli

1) Si consideri un esperimento che consiste nel lancio di 5 dadi. Lo spazio campionario:

1) Si consideri un esperimento che consiste nel lancio di 5 dadi. Lo spazio campionario: Esempi di domande risposta multipla (Modulo II) 1) Si consideri un esperimento che consiste nel lancio di 5 dadi. Lo spazio campionario: 1) ha un numero di elementi pari a 5; 2) ha un numero di elementi

Dettagli

LA MOLTIPLICAZIONE IN CLASSE SECONDA

LA MOLTIPLICAZIONE IN CLASSE SECONDA LA MOLTIPLICAZIONE IN CLASSE SECONDA Rossana Nencini, 2013 Le fasi del lavoro: 1. Proponiamo ai bambini una situazione reale di moltiplicazione: portiamo a scuola una scatola di biscotti (. ) e diamo la

Dettagli

TECNICHE DI SIMULAZIONE

TECNICHE DI SIMULAZIONE TECNICHE DI SIMULAZIONE INTRODUZIONE Francesca Mazzia Dipartimento di Matematica Università di Bari a.a. 2004/2005 TECNICHE DI SIMULAZIONE p. 1 Introduzione alla simulazione Una simulazione è l imitazione

Dettagli

la scienza della rappresentazione e della elaborazione dell informazione

la scienza della rappresentazione e della elaborazione dell informazione Sistema binario Sommario informatica rappresentare informazioni la differenza Analogico/Digitale i sistemi di numerazione posizionali il sistema binario Informatica Definizione la scienza della rappresentazione

Dettagli

STATISTICA IX lezione

STATISTICA IX lezione Anno Accademico 013-014 STATISTICA IX lezione 1 Il problema della verifica di un ipotesi statistica In termini generali, si studia la distribuzione T(X) di un opportuna grandezza X legata ai parametri

Dettagli

Esempi di algoritmi. Lezione III

Esempi di algoritmi. Lezione III Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni

Dettagli

Primi esercizi per gli studenti del corso di Statistica ed Elementi di Probabilita

Primi esercizi per gli studenti del corso di Statistica ed Elementi di Probabilita Primi esercizi per gli studenti del corso di Statistica ed Elementi di Probabilita NOTA 1 Gli esercizi sono presi da compiti degli scorsi appelli, oppure da testi o dispense di colleghi. A questi ultimi

Dettagli

L espressione torna invece sempre vera (quindi la soluzione originale) se cambiamo contemporaneamente il verso: 1 < 0.

L espressione torna invece sempre vera (quindi la soluzione originale) se cambiamo contemporaneamente il verso: 1 < 0. EQUAZIONI E DISEQUAZIONI Le uguaglianze fra espressioni numeriche si chiamano equazioni. Cercare le soluzioni dell equazione vuol dire cercare quelle combinazioni delle lettere che vi compaiono che la

Dettagli

Aprire WEKA Explorer Caricare il file circletrain.arff Selezionare random split al 66% come modalità di test Selezionare J48 come classificatore e

Aprire WEKA Explorer Caricare il file circletrain.arff Selezionare random split al 66% come modalità di test Selezionare J48 come classificatore e Alberi di decisione Aprire WEKA Explorer Caricare il file circletrain.arff Selezionare random split al 66% come modalità di test Selezionare J48 come classificatore e lanciarlo con i parametri di default.

Dettagli

un protocollo è costituito da una serie di passi (step) e coinvolge due o più persone (parti, entità) allo scopo di svolgere un incarico

un protocollo è costituito da una serie di passi (step) e coinvolge due o più persone (parti, entità) allo scopo di svolgere un incarico protocolli un protocollo è costituito da una serie di passi (step) e coinvolge due o più persone (parti, entità) allo scopo di svolgere un incarico proprietà ogni persona coinvolta deve conoscere il protocollo

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

Dettagli

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede

Dettagli

Ottimizzazione delle interrogazioni (parte I)

Ottimizzazione delle interrogazioni (parte I) Ottimizzazione delle interrogazioni I Basi di Dati / Complementi di Basi di Dati 1 Ottimizzazione delle interrogazioni (parte I) Angelo Montanari Dipartimento di Matematica e Informatica Università di

Dettagli

da 2 a 5 giocatori, dai 10 anni in su, durata 30 minuti

da 2 a 5 giocatori, dai 10 anni in su, durata 30 minuti da 2 a 5 giocatori, dai 10 anni in su, durata 30 minuti OBIETTIVO Il vincitore è colui che, dopo due round di gioco, delle sue 11 ordinazioni, ne ha consegnate il maggior numero. CONTENUTO DELLA SCATOLA

Dettagli

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme G Pareschi Principio di induzione Il Principio di Induzione (che dovreste anche avere incontrato nel Corso di Analisi I) consente di dimostrare Proposizioni il cui enunciato è in funzione di un numero

Dettagli

ALGEBRA DELLE PROPOSIZIONI

ALGEBRA DELLE PROPOSIZIONI Università di Salerno Fondamenti di Informatica Corso di Laurea Ingegneria Corso B Docente: Ing. Giovanni Secondulfo Anno Accademico 2010-2011 ALGEBRA DELLE PROPOSIZIONI Fondamenti di Informatica Algebra

Dettagli

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. E. Calabrese: Fondamenti di Informatica Problemi-1 Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. L'informatica

Dettagli

Analisi dei Dati 12/13 Esercizi proposti 3 soluzioni

Analisi dei Dati 12/13 Esercizi proposti 3 soluzioni Analisi dei Dati 1/13 Esercizi proposti 3 soluzioni 0.1 Un urna contiene 6 palline rosse e 8 palline nere. Si estraggono simultaneamente due palline. Qual è la probabilità di estrarle entrambe rosse? (6

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0) PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0) (Da effettuare non prima del 01/01/2011) Le istruzioni si basano su un azienda che ha circa 1000 articoli, che utilizza l ultimo

Dettagli

Sistema di numerazione binario, operazioni relative e trasformazione da base due a base dieci e viceversa di Luciano Porta

Sistema di numerazione binario, operazioni relative e trasformazione da base due a base dieci e viceversa di Luciano Porta Sistema di numerazione binario, operazioni relative e trasformazione da base due a base dieci e viceversa di Luciano Porta Anche se spesso si afferma che il sistema binario, o in base 2, fu inventato in

Dettagli

Il sistema monetario

Il sistema monetario Il sistema monetario Premessa: in un sistema economico senza moneta il commercio richiede la doppia coincidenza dei desideri. L esistenza del denaro rende più facili gli scambi. Moneta: insieme di tutti

Dettagli

Esercizio 1: trading on-line

Esercizio 1: trading on-line Esercizio 1: trading on-line Si realizzi un programma Java che gestisca le operazioni base della gestione di un fondo per gli investimenti on-line Creazione del fondo (con indicazione della somma in inizialmente

Dettagli

Random number generators

Random number generators Statistica computazionale Random number generators www.cash-cow.it Distribuito sotto licenza Creative Common, Share Alike Attribution 2 Indice I. Introduzione II. Processi fisici per la creazione di numeri

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

ESEMPIO 1: eseguire il complemento a 10 di 765

ESEMPIO 1: eseguire il complemento a 10 di 765 COMPLEMENTO A 10 DI UN NUMERO DECIMALE Sia dato un numero N 10 in base 10 di n cifre. Il complemento a 10 di tale numero (N ) si ottiene sottraendo il numero stesso a 10 n. ESEMPIO 1: eseguire il complemento

Dettagli

AURORA LUCA MARTINA GIANLUCA

AURORA LUCA MARTINA GIANLUCA ALESSIO Team Firestorm MICHELE AURORA LUCA MARTINA GIANLUCA Quest anno il nome del robot è Rhynobot a causa del prolungamento frontale che ricorda il corno di un rinoceronte. Capitolo 1: Missioni scelte

Dettagli

Un modello matematico di investimento ottimale

Un modello matematico di investimento ottimale Un modello matematico di investimento ottimale Tiziano Vargiolu 1 1 Università degli Studi di Padova Liceo Scientifico Benedetti Venezia, giovedì 30 marzo 2011 Outline 1 Investimento per un singolo agente

Dettagli

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini Dipartimento di Ingegneria della Informazione Via Diotisalvi, 2 56122 PISA ALGORITMI GENETICI (GA) Sono usati per risolvere problemi di ricerca

Dettagli

Gestione Turni. Introduzione

Gestione Turni. Introduzione Gestione Turni Introduzione La gestione dei turni di lavoro si rende necessaria quando, per garantire la continuità del servizio di una determinata struttura, è necessario che tutto il personale afferente

Dettagli

Corso di. Dott.ssa Donatella Cocca

Corso di. Dott.ssa Donatella Cocca Corso di Statistica medica e applicata Dott.ssa Donatella Cocca 1 a Lezione Cos'è la statistica? Come in tutta la ricerca scientifica sperimentale, anche nelle scienze mediche e biologiche è indispensabile

Dettagli

La manutenzione come elemento di garanzia della sicurezza di macchine e impianti

La manutenzione come elemento di garanzia della sicurezza di macchine e impianti La manutenzione come elemento di garanzia della sicurezza di macchine e impianti Alessandro Mazzeranghi, Rossano Rossetti MECQ S.r.l. Quanto è importante la manutenzione negli ambienti di lavoro? E cosa

Dettagli

La Firma Digitale La sperimentazione nel Comune di Cuneo. Pier Angelo Mariani Settore Elaborazione Dati Comune di Cuneo

La Firma Digitale La sperimentazione nel Comune di Cuneo. Pier Angelo Mariani Settore Elaborazione Dati Comune di Cuneo La Firma Digitale La sperimentazione nel Comune di Cuneo Pier Angelo Mariani Settore Elaborazione Dati Comune di Cuneo Perchè questa presentazione Il Comune di Cuneo, aderente alla RUPAR, ha ricevuto due

Dettagli

COME È FATTO IL COMPUTER

COME È FATTO IL COMPUTER 1 di 8 15/07/2013 17:07 COME È FATTO IL COMPUTER Le componenti fondamentali Un computer, o elaboratore di dati, è composto da una scheda madre alla quale sono collegate periferiche di input e output, RAM

Dettagli

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle

Dettagli

Stampe in rete Implementazione corretta

Stampe in rete Implementazione corretta NETWORK PRINT SERVERS Articolo Stampe in rete Implementazione corretta Created: June 3, 2005 Last updated: June 3, 2005 Rev:.0 INDICE INTRODUZIONE 3 INFRASTRUTTURA DELLE STAMPE IN RETE 3. Stampa peer-to-peer

Dettagli

Un metodo per il rilevamento degli errori: la tecnica del Bit di Parità

Un metodo per il rilevamento degli errori: la tecnica del Bit di Parità Appunti: Tecniche di rilevazione e correzione degli errori 1 Tecniche di correzione degli errori Le tecniche di correzione degli errori sono catalogabili in: metodi per il rilevamento degli errori; metodi

Dettagli

Informatica per la comunicazione" - lezione 7 -

Informatica per la comunicazione - lezione 7 - Informatica per la comunicazione - lezione 7 - Campionamento La codifica dei suoni si basa sulla codifica delle onde che li producono, a sua volta basata su una procedura chiamata campionamento.! Il campionamento

Dettagli

LE FUNZIONI A DUE VARIABILI

LE FUNZIONI A DUE VARIABILI Capitolo I LE FUNZIONI A DUE VARIABILI In questo primo capitolo introduciamo alcune definizioni di base delle funzioni reali a due variabili reali. Nel seguito R denoterà l insieme dei numeri reali mentre

Dettagli

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca

Dettagli