Il Test di Primalità Miller-Rabin

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Il Test di Primalità Miller-Rabin"

Transcript

1 Il Test di Primalità Miller-Rabin Marco Frego Marco Pizzato 8 giugno 2006

2 Indice 0.1 Introduzione La densità dei numeri primi Test di pseudoprimalità Il test Miller-Rabin Errori del Miller-Rabin L algoritmo Bibliografia

3 0.1 Introduzione La ricerca di grandi numeri primi è di fondamentale importanza in alcune applicazioni algebriche come per esempio la crittografia e l ausilio della tecnologia in questi settori è fondamentale. Per questo sono numerosissimi gli algoritmi computazionali che permettono di verificare in tempi relativamente brevi e con calcoli semplici se un numero è effettivamente primo. 0.2 La densità dei numeri primi La densità dei numeri primi all interno degli interi permette di poter trovare in tempi relativamente brevi dei primi abbastanza grandi. La funzione π(n) conta i numeri primi minori o uguali a n. Ad esempio π(15) = 6, perchè i numeri primi minori o uguali a 15 sono 2, 3, 5, 7, 11, 13. Il valore di questa funzione può essere stimato a partire dal seguente risultato. Teorema 1.1 lim n π(n) n log(n) = 1 Ad esempio per n = 10 9 π(n) = mentre L errore è inferiore al 6%. n log(n) = Il teorema inoltre ci dice che la probablità che un intero estratto a caso 1 sia primo è log(n). Per trovare un numero primo della stessa lunghezza di n basta generare log(n) interi casuali vicini a n. Di conseguenza se vogliamo trovare un numero primo di 100 cifre, dovremo tentare circa log( ) 230 volte. Tale numero può essere dimezzato se proviamo solo con numeri dispari. Sia n = p e 1 1 pe per r, dove p 1, p 2,..., p r sono i fattori primi di n e e 1, e 2,..., e r sono interi positivi. Si ha che n è primo se e solo se gli e i sono nulli tranne uno. L approccio più elementare per verificare la primalità di un numero è quello delle ripetute divisioni (trial division). Tentare di divedere n per ogni intero 2, 3,..., n. Questo metodo ha però una lunghezza esponenziale di ordine n, Θ(n). Questo algoritmo funziona bene solo nel caso in cui il numero sia piccolo. Ha il vantaggio di determinare non solo se un numero sia primo, ma, nel caso non lo sia, di trovare i suoi fattori. 2

4 Il nostro interesse è però trovare un buon algoritmo che permetta di determinare se un numero ha una certa probabilità di essere primo. La sua fattorizzazione è irrilevante. Oltrettutto da un punto di vista computazionale è molto più facile determinare la primalità piuttosto che trovare la fattorizzazione. 0.3 Test di pseudoprimalità Presentiamo ora un algoritmo che permette di verificare la primalità di un numero, questa procedura funziona abbastanza bene. In seguito presenteremo una versione più raffinata di questo metodo. Sia Z + n = 1, 2,..., n 1. Se n è primo allora Z + n = Z n, dove con Z n si intende il campo. Definiamo n uno pseudoprimo in base a se a n 1 1 (mod n) Un teorema di Fermat afferma che se n è primo la congruenza è sempre valida. Quindi se riusciamo a trovare un a Z + n che non soddisfa l equazione, allora siamo sicuri che n non è primo. L algoritmo si basa sull idea di testare n per a = 2. Se non soddisfa l equazione allora n non è primo, se la soddisfa diciamo che lo è. Incredibilmente questa procedura sbaglia raramente. Ci sono solo 22 valori di n prima di per i quali questo metodo porta ad un errore. La probabilità che l algoritmo sbagli tende a zero quando il numero di bit che compongono n va all infinito. Ad esempio un numero di 512 bit ha una probablità minore di di produrre un errore, mentre per un numero di 1024 bit, scende a Questo metodo purtroppo incappa sicuramente in un errore quando incontra un intero che soddisfa l equazione per ogni a Z + n. Questi interi esistono davvero e vengono detti numeri di Carmichael. Per fortuna questi numeri sono piuttosto rari. Ce ne sono solo 255 minori di Quest algoritmo funziona quindi discretamente bene per numeri grandi e può essere benissimo usato per verficare la primalità di un numero. 0.4 Il test Miller-Rabin Questo metodo cerca di risolvere il problema del precedente introducendo due modifiche: 3

5 Prova diversi valori di a invece che uno solo Controlla se durante l elevamento a potenza vengono trovate delle radici non banali dell unità modulo n L algoritmo prende in input il numero n di cui vogliamo verficare la primalità e un altro intero s che è il numero di a basi, scelte casualmente. Viene però introdotta la funzione witness in modo che witness(a, n) restituisce il valore di verità 1 se e solo se n è composto, il valore a può essere usato per verificare la non primalità di n. Vediamo come funziona witness: Sia n 1 = 2 t u, con t 1 e u dispari. In questo modo calcolare a n 1 (mod n) è equivalente a calcolare (a u ) 2t (mod n). Calcoliamo a u e poi eleviamo il risultato al quadrato per t volte. La funzione calcola x 0 = a u e successivamente x i = x 2 i 1, per i = 1, 2,..., t. Quindi x n 1 t 1 (mod n). Se durante l elevamento al quadrato il programma trova una radice non banale dell unità modulo n si ferma e risponde 1 (Per motivi algebrici l unità ha radici non banali se e solo se il numero non è primo). Se non vengono trovate radici banali ma x t 1 la funzione restituisce 1 (viene contraddetto il teorema di Fermat citato in precedenza). Altrimenti restituisce 0. La funzione Miller-Rabin è una ricerca probabilistica per vedere se n non è primo. Prende a caso s diversi valori di a e, se per uno di essi la funzione witness risponde 1, allora la funzione M-R risponde che il numero non è primo, altrimenti assume che n sia primo. Vediamo come questa funzione risolve il problema dei numeri di Carmichael: Sia n = 561 (è di Carmichael). Allora n 1 = 560 = Supponiamo che la base scelta sia 7, allora witness calcola x 0 = 241, x 1 = 298, x 2 = 166, x 3 = 67, x = 4 = 1. La funzione ha trovato una radice non banale dell unità e quindi restituisce 1. Infatti 561 non è primo (561 = ). Se n è formato da ξ bit e s è il numero di tentativi massimi, la funzione Miller-Rabin richiede O(sξ) operazioni aritmetiche, cioè non più di s elevamenti a potenza modulo n. 0.5 Errori del Miller-Rabin Per l algoritmo Miller-Rabin c è una bassa possibilità di errore. A differenza dell algoritmo di pseudoprimalità la possibilità di errore non dipende dal numero n scelto. Dipende dal numero s di tentativi e dalla fortuna nella scelta delle basi delle potenze. Possiamo quindi aspettarci che per interi casuali la 4

6 percentuale di errore sia molto bassa. Infatti: Teorema 1.2 Se n è un numero dispari non primo, allora il numero di elementi per cui la funzione witness da esito positivo sono almeno n 1 2. Teorema 1.3 Per ogni intero dispari n > 2 e per ogni intero postivo s, la probablità che Miller-Rabin(n,s) sbagli è al massimo 2 s. Quindi la scelta di s = 50 dovrebbe bastare per ogni applicazione possibile, anche se valori minori possono essere sufficienti. 0.6 L algoritmo #include <stdio.h> #include <stdlib.h> #include <time.h> int witness(unsigned long b,unsigned long long n) int flag=1; unsigned long borig,q,l,bb,zz,r; unsigned long esp; unsigned long mod; unsigned long x; unsigned long max=1; esp=n-1; mod=n; borig=b; while ((max*2)<=esp) max=max*2; do x=b; bb=b; if (esp>=max) 5

7 if (flag>1) for (l=1;l<bb;l=l+1) b=(b+bb)%mod; zz=b; for (r=1;r<borig;r=r+1) b=(b+zz)%mod; esp=esp-max; flag =flag+1; else for (q=1;q<bb;q=q+1) b=(b+bb)%mod; if (b==1 & x!=1 & x!=n-1) return 1; max=max/2; while(max>=1); if (b!=1) return 1; return -1; int main() unsigned long n; unsigned long a; int s,j,k; srand((unsigned long)time(null)); printf("\n Di che numero vuoi sapere la primalita?"); scanf("%d", &n); printf("\n Quanti tentativi devo fare? "); scanf("%d", &s); for (j=1;j<s+1;j=j+1) a= 1+rand()%(n-1); if (witness(a,n)==1) 6

8 printf("\n Il numero e composto"); scanf("%d",k); return 0; printf("il numero e primo"); scanf("%d",&k); return 0; 0.7 Bibliografia Cormen, Leiserson, Rivest, Stein - Introduction to Algorithms, 2nd edition MIT Press,

una possibile funzione unidirezionale

una possibile funzione unidirezionale una possibile funzione unidirezionale moltiplicare due interi a n bit è facile (in O(n 2 ) con l algoritmo usuale) trovare un primo a n bit, e verificare che è primo, è facile (vedremo poi) fattorizzare

Dettagli

una possibile funzione unidirezionale

una possibile funzione unidirezionale una possibile funzione unidirezionale moltiplicare due interi a n bit è facile (in O(n 2 ) con l algoritmo usuale) trovare un primo a n bit, e verificare che è primo, è facile fattorizzare un numero a

Dettagli

Number Theory. Teoria dei numeri. Teorema della divisione. Congruenze mod n

Number Theory. Teoria dei numeri. Teorema della divisione. Congruenze mod n Number Theory Alfredo De Santis Dipartimento di Informatica ed Applicazioni Università di Salerno Marzo 2012 adsi@dia.unisa.it http://www.dia.unisa.it/professori/ads Teoria dei numeri Concetti preliminari

Dettagli

una possibile funzione unidirezionale

una possibile funzione unidirezionale una possibile funzione unidirezionale moltiplicare due interi a n bit è facile (in O(n 2 ) con l algoritmo usuale) trovare un primo a n bit, e verificare che è primo, è facile (vedremo poi) fattorizzare

Dettagli

Teoria dei numeri. Number Theory. Congruenze mod n. Teorema della divisione. Concetti preliminari per RSA

Teoria dei numeri. Number Theory. Congruenze mod n. Teorema della divisione. Concetti preliminari per RSA Number Theory Teoria dei numeri Concetti preliminari per RSA Barbara Masucci Dipartimento di Informatica ed Applicazioni Università di Salerno masucci@dia.unisa.it http://www.dia.unisa.it/professori/masucci

Dettagli

Number Theory. Teoria dei numeri. Teorema della divisione. Corso di Sicurezza su reti Concetti preliminari per RSA

Number Theory. Teoria dei numeri. Teorema della divisione. Corso di Sicurezza su reti Concetti preliminari per RSA Number Theory Barbara Masucci Dipartimento di Informatica ed Applicazioni Università di Salerno masucci@dia.unisa.it http://www.dia.unisa.it/professori/masucci Teoria dei numeri Concetti preliminari per

Dettagli

Teoria dei Numeri. Number Theory. Teoria dei numeri. Teorema della divisione. Cifrari asimmetrici più comuni basati sulla Teoria dei Numeri

Teoria dei Numeri. Number Theory. Teoria dei numeri. Teorema della divisione. Cifrari asimmetrici più comuni basati sulla Teoria dei Numeri Number Theory Teoria dei Numeri Cifrari asimmetrici più comuni basati sulla Teoria dei Numeri Barbara Masucci Dipartimento di Informatica ed Applicazioni Università di Salerno masucci@dia.unisa.it http://www.dia.unisa.it/professori/masucci

Dettagli

Teoria dei numeri e Crittografia: lezione del 26 ottobre 2011

Teoria dei numeri e Crittografia: lezione del 26 ottobre 2011 Teoria dei numeri e Crittografia: lezione del 6 ottobre 011 Nota storica: il più grande numero primo conosciuto attualmente è il numero 43.11.609-1 (è uno dei cosiddetti numeri di Mersenne della forma

Dettagli

Fattorizzazione di interi e crittografia

Fattorizzazione di interi e crittografia Fattorizzazione di interi e crittografia Anna Barbieri Università degli Studi di Udine Corso di Laurea in Matematica (Fattorizzazione e crittografia) 14 Maggio 2012 1 / 46 Il teorema fondamentale dell

Dettagli

L algoritmo AKS. L algoritmo AKS. Seminario per il corso di Elementi di Algebra Computazionale. Oscar Papini. 22 luglio 2013

L algoritmo AKS. L algoritmo AKS. Seminario per il corso di Elementi di Algebra Computazionale. Oscar Papini. 22 luglio 2013 L algoritmo AKS Seminario per il corso di Elementi di Algebra Computazionale Oscar Papini 22 luglio 2013 Test di primalità Come facciamo a sapere se un numero n è primo? Definizione (Test di primalità)

Dettagli

Crittografia e sicurezza delle reti. 1. Classi complessità probabilistiche e OWF 2. Test primalità

Crittografia e sicurezza delle reti. 1. Classi complessità probabilistiche e OWF 2. Test primalità Crittografia e sicurezza delle reti 1. Classi complessità probabilistiche e OWF 2. Test primalità Classi di complessità Una classe di complessità è una classe di problemi di decisione (linguaggi) che possono

Dettagli

NUMERI PRIMI E CRITTOGRAFIA

NUMERI PRIMI E CRITTOGRAFIA NUMERI PRIMI E CRITTOGRAFIA Parte I. Crittografia a chiave simmetrica dall antichità all era del computer Parte II. Note della Teoria dei Numeri concetti ed algoritmi a supporto della Crittografia Parte

Dettagli

una possibile funzione unidirezionale

una possibile funzione unidirezionale una possibile funzione unidirezionale moltiplicare due interi a n bit è facile (in O(n 2 ) con l algoritmo usuale) trovare un primo a n bit, e verificare che è primo, è facile (vedremo poi) fattorizzare

Dettagli

I Numeri Primi. Università degli Studi di Milano Polo Didattico e di Ricerca di Crema. Prof.ssa Laura Citrini

I Numeri Primi. Università degli Studi di Milano Polo Didattico e di Ricerca di Crema. Prof.ssa Laura Citrini Università degli Studi di Milano Polo Didattico e di Ricerca di Crema I Numeri Primi Prof.ssa Laura Citrini Filippo Gandaglia 657228 Massimo Manara 656814 Andrea Gardoni 656751 Luigi Margheritti 660216

Dettagli

Dunque k vale all incirca log n: precisamente k = [log n] + 1.

Dunque k vale all incirca log n: precisamente k = [log n] + 1. Teoria Elementare dei Numeri Soluzioni Esercizi 1 Convenzione: Su questo foglio log n indica sempre il logaritmo in base 2 di n 1 Quante cifre binarie ha all incirca un numero intero n? Sol Scriviamo n

Dettagli

DIARIO DEL CORSO DI TEORIA DEI NUMERI E CRITTOGRAFIA. (41 ore complessive di lezione)

DIARIO DEL CORSO DI TEORIA DEI NUMERI E CRITTOGRAFIA. (41 ore complessive di lezione) DIARIO DEL CORSO DI TEORIA DEI NUMERI E CRITTOGRAFIA DOCENTE: SANDRO MATTAREI (41 ore complessive di lezione) Prima settimana. Lezione di martedí 22 febbraio 2011 (due ore) Rappresentazione di numeri interi

Dettagli

TUTORAGGIO INFORMATICA Settimana 1

TUTORAGGIO INFORMATICA Settimana 1 TUTORAGGIO INFORMATICA Settimana 1 Variabili semplici, cicli e flag Leggenda: //commenti PROBLEMA 1: Si scriva un programma che permetta di calcolare il prodotto tra due valori interi positivi A, B utilizzando

Dettagli

Strutture di Controllo Iterative: Istruzioni While e Do

Strutture di Controllo Iterative: Istruzioni While e Do Linguaggio C Strutture di Controllo Iterative: Istruzioni While e Do 1 Istruzioni iterative! Anche dette cicli! Prevedono l esecuzione ripetitiva di altre istruzioni (corpo del ciclo)! Ad ogni iterazione

Dettagli

Teoria dei Numeri. Number Theory. Teoria dei numeri. Teorema della divisione. Cifrari asimmetrici più comuni basati sulla Teoria dei Numeri

Teoria dei Numeri. Number Theory. Teoria dei numeri. Teorema della divisione. Cifrari asimmetrici più comuni basati sulla Teoria dei Numeri Number Theory Teoria dei Numeri Cifrari asimmetrici più comuni basati sulla Teoria dei Numeri Barbara Masucci Dipartimento di Informatica ed Applicazioni Università di Salerno masucci@dia.unisa.it http://www.dia.unisa.it/professori/masucci

Dettagli

Calcolatori Elettronici Lezione 2 8/10/2012. Emiliano Casalicchio

Calcolatori Elettronici Lezione 2 8/10/2012. Emiliano Casalicchio Calcolatori Elettronici Lezione 2 Emiliano Casalicchio Emiliano.Casalicchio@uniroma2.it Argomenti della lezione Esercitazione collettiva. La lezione si svolge come segue: Docente: Esposizione del problema

Dettagli

esistenza dell identità: $ e œ G tale che " a œ G esistenza dell inverso: " a œ G $ a œ G tale che Alberto Leporati Corso di Crittografia 2

esistenza dell identità: $ e œ G tale che  a œ G esistenza dell inverso:  a œ G $ a œ G tale che Alberto Leporati Corso di Crittografia 2 Crittografia Corso di Laurea Specialistica in Informatica Nozioni di Algebra Alberto Leporati Dipartimento di Informatica, Sistemistica e Comunicazione Università degli Studi di Milano Bicocca e-mail:

Dettagli

Corso di Crittografia Prof. Dario Catalano. Primitive Asimmetriche

Corso di Crittografia Prof. Dario Catalano. Primitive Asimmetriche Corso di Crittografia Prof. Dario Catalano Primitive Asimmetriche Introduzione n Oggi discuteremo le primitive sulla base delle quali costruire sistemi asimmetrici affidabili. n Nel caso della crittografia

Dettagli

E necessaria la chiave segreta? RSA. Funzioni One-way con Trapdoor. Un secondo protocollo

E necessaria la chiave segreta? RSA. Funzioni One-way con Trapdoor. Un secondo protocollo E necessaria la chiave segreta? RSA Rivest, Shamir, Adelman A manda a B lo scrigno chiuso con il suo lucchetto. B chiude lo scrigno con un secondo lucchetto e lo rimanda ad A A toglie il suo lucchetto

Dettagli

Gregorio D Agostino. 11 Aprile 2017

Gregorio D Agostino. 11 Aprile 2017 Primalità Gregorio D Agostino 11 Aprile 2017 Metodi Esatti Metodi indeterminati Esercizi Requisiti per la cifratura In molte applicazioni crittografiche (abbiamo visto RSA) bisogna trovare numeri primi

Dettagli

Cifrario di Rabin. Chiara Gasparri

Cifrario di Rabin. Chiara Gasparri Cifrario di Rabin Chiara Gasparri Simbolo di Legendre Sia p un numero primo dispari, definiamo il Simbolo di Legendre come 0 se p divide a a = 1 se a è un quadrato di Z p 1 se a non è quadrato Z p p Proprietà

Dettagli

Cause di errore. Analisi dell errore. Cause di errore nel calcolo di un espressione razionale. Errore inerente. Esempio

Cause di errore. Analisi dell errore. Cause di errore nel calcolo di un espressione razionale. Errore inerente. Esempio Esempio Cause di errore Analisi dell errore Errore di rappresentazione dei dati Errore di rappresentazione dei risultati delle operazioni Errore totale Cause di errore nel calcolo di un espressione razionale

Dettagli

Corso di Informatica 1 Esercitazione n. 2

Corso di Informatica 1 Esercitazione n. 2 Corso di Informatica 1 Esercitazione n. 2 Marco Liverani Esercizio n. 1 Letto in input un array A di n elementi, usando solo questo array, inverte l ordine degli elementi; ossia se A = (10,27,13,4), allora

Dettagli

Crittografia. Nozioni di Algebra. Corso di Laurea Specialistica. in Informatica

Crittografia. Nozioni di Algebra. Corso di Laurea Specialistica. in Informatica Crittografia Corso di Laurea Specialistica in Informatica Nozioni di Algebra Alberto Leporati Dipartimento di Informatica, Sistemistica e Comunicazione Università degli Studi di Milano Bicocca e-mail:

Dettagli

Nell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi:

Nell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi: Pag 24 3) Il problema della ricerca Nell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi: si incontrano in una grande varietà di situazioni reali; appaiono come sottoproblemi

Dettagli

Anno 2. Radicali algebrici e aritmetici: condizioni di esistenza

Anno 2. Radicali algebrici e aritmetici: condizioni di esistenza Anno 2 Radicali algebrici e aritmetici: condizioni di esistenza 1 Introduzione Perché studiare i radicali? In matematica ogni volta che facciamo un operazione dobbiamo anche vedere se è possibile tornare

Dettagli

Introduzione al C. Esercitazione 6. Raffaele Nicolussi. Corso di Fondamenti di Informatica Ingegneria Clinica

Introduzione al C. Esercitazione 6. Raffaele Nicolussi. Corso di Fondamenti di Informatica Ingegneria Clinica Corso di Fondamenti di Informatica Ingegneria Clinica Esercitazione 6 Raffaele Nicolussi Esercizio 1 Si scriva una funzione in linguaggio C che riceve in ingresso un numero intero A letto da tastiera,

Dettagli

Tecniche Algoritmiche: divide et impera

Tecniche Algoritmiche: divide et impera Tecniche Algoritmiche: divide et impera Una breve presentazione F. Damiani - Alg. & Lab. 04/05 Divide et impera (o Divide and conquer) Per regnare occorre tenere divisi i nemici e trarne vantaggio F. Damiani

Dettagli

Gregorio D Agostino. 6 Aprile 2017

Gregorio D Agostino. 6 Aprile 2017 Primalità Gregorio D Agostino 6 Aprile 2017 Metodi Esatti Metodi indeterminati Esercizi Metodo dell ispezione Algoritmo: Dato un numero n per verificare se è primo, lo si divide n per tutti i numeri minori

Dettagli

Alcuni Soluzioni. Fornire la specifica di un algoritmo risolutivo utilizzando lo pseudocodice visto a lezione.

Alcuni Soluzioni. Fornire la specifica di un algoritmo risolutivo utilizzando lo pseudocodice visto a lezione. Alcuni Soluzioni ESERCIZIO 1 Data una sequenza di interi di dimensione dim, determinare se esistono esattamente cont occorrenze del valore val, utilizzando per questo una variabile booleana check. Stato

Dettagli

Matematica con Python

Matematica con Python Matematica con Python e-mail: maurosaita@tiscalinet.it Versione provvisoria. Dicembre 2016. 1 Lezione n. 3 Numeri primi fino a 1000. Indice 1 Funzioni 2 1.1 Trasformazione di un intervallo di tempo da

Dettagli

Per regnare occorre tenere divisi i nemici e trarne vantaggio. fai ad ogni passo la scelta più conveniente

Per regnare occorre tenere divisi i nemici e trarne vantaggio. fai ad ogni passo la scelta più conveniente Progetto di algoritmi sequenziali (un solo esecutore ) Divide et Impera Per regnare occorre tenere divisi i nemici e trarne vantaggio Greedy fai ad ogni passo la scelta più conveniente Buoni risultati

Dettagli

Ricerca di Massimo e Minimo di un Array

Ricerca di Massimo e Minimo di un Array Universitá degli Studi di Salerno Corso di Introduzione agli Algoritmi e Strutture Dati Prof. Ugo Vaccaro Anno Acc. 2014/15 p. 1/18 Ricerca di Massimo e Minimo di un Array Problema. Trova l elemento di

Dettagli

COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI

COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.200.2005/06 Prof. V.L. Plantamura Dott.ssa A. Angelini Ω (grande omega) Diciamo che T(n) = Ω (f(n)), - leggiamo T(n) ha complessità

Dettagli

PROGRAMMAZIONE: ESERCITAZIONE N. 6

PROGRAMMAZIONE: ESERCITAZIONE N. 6 PROGRAMMAZIONE: ESERCITAZIONE N. 6 Esercizi su stru+ure condizionali e itera1ve Conoscenze richieste: LC1+LC2+LC3+LC4+LC5+LC6 Esercizio 1 Acquisire un numero positivo N e calcolarne la radice quadrata

Dettagli

Analisi Numerica: Introduzione

Analisi Numerica: Introduzione Analisi Numerica: Introduzione S. Maset Dipartimento di Matematica e Geoscienze, Università di Trieste Analisi numerica e calcolo numerico Analisi numerica e calcolo numerico La matematica del continuo

Dettagli

Corso di programmazione in C

Corso di programmazione in C Corso di programmazione in C Lezione 3: un semplice programma Liceo Scientico Teresa Gullace M. Prisco 15 marzo 2019 Liceo Scientico Teresa Gullace Corso di programmazione in C 15 marzo 2019 1 / 11 Outline

Dettagli

TUTORAGGIO INFORMATICA Settimana 2

TUTORAGGIO INFORMATICA Settimana 2 TUTORAGGIO INFORMATICA Settimana 2 Leggenda: //commenti I vettori PROBLEMA 1: percentuali Si scriva un programma in grado di: a) Caricare un vettore V di dimensione N ] di valori interi RELATIVI chiesti

Dettagli

ESERCITAZIONI DI INTRODUZIONE AGLI ALGORITMI (A.A. 08/09)

ESERCITAZIONI DI INTRODUZIONE AGLI ALGORITMI (A.A. 08/09) ESERCITAZIONI DI INTRODUZIONE AGLI ALGORITMI (A.A. 08/09) DISPENSA N. 4 1. Ricerca Binaria Ricorsiva L algoritmo Ricerca Binaria risolve il problema della ricerca di una chiave in un vettore. È un esempio

Dettagli

Incontri Olimpici 2013

Incontri Olimpici 2013 Incontri Olimpici 2013 Problemi di Teoria dei Numeri Bologna, 15 ottobre 2013 Appunti redatti da Ercole Suppa Sommario In questo documento sono riportate le soluzioni dei problemi di teoria dei numeri

Dettagli

Soluzioni delle Esercitazioni V 15-19/10/ x 1 = = /x + = 0. 1+e x = 1. lnx 1+1/x = = = +.

Soluzioni delle Esercitazioni V 15-19/10/ x 1 = = /x + = 0. 1+e x = 1. lnx 1+1/x = = = +. Soluzioni delle Esercitazioni V 5-9/0/208 A. Limiti I iti che seguono si possono calcolare con l algebra dei iti. 2 3 4 5 6 7 8 9 0 +2 3 = +2 3 = 3 2. e = ) e = e. / + = 0 + = 0 + = 0. +e = +0 = = 0. +/

Dettagli

Costruiamo un'immagine o qualcosa di simile.

Costruiamo un'immagine o qualcosa di simile. Costruiamo un'immagine...... o qualcosa di simile. Se consideriamo la C che si trova in fondo a destra, ci accorgiamo che un'immagine non è altro che una tabella di valori. Nel caso in cui si consideri

Dettagli

Lezione 4. Problemi trattabili e soluzioni sempre più efficienti. Gianluca Rossi

Lezione 4. Problemi trattabili e soluzioni sempre più efficienti. Gianluca Rossi Lezione 4 Problemi trattabili e soluzioni sempre più efficienti Gianluca Rossi Trattabile o intrattabile? Consideriamo ora il problema, ben noto a tutti gli studenti a partire dalla scuola media, di calcolare

Dettagli

Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output

Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output F = { (s, s ) } per ogni s esiste una e una sola coppia (s, s ). Esempio: un algoritmo che calcola il quadrato di

Dettagli

QUINTO APPELLO DEL CORSO DI ANALISI MATEMATICA CORSO DI LAURA IN INFORMATICA, A.A. 2017/18 23 LUGLIO 2018 CORREZIONE. x 4 f(x) = x 2 + x 2

QUINTO APPELLO DEL CORSO DI ANALISI MATEMATICA CORSO DI LAURA IN INFORMATICA, A.A. 2017/18 23 LUGLIO 2018 CORREZIONE. x 4 f(x) = x 2 + x 2 QUINTO APPELLO DEL CORSO DI ANALISI MATEMATICA CORSO DI LAURA IN INFORMATICA, A.A. 27/8 23 LUGLIO 28 CORREZIONE Esercizio ) Considerate la funzione f definita da f(x) = x 2 + x 2. Trovatene il dominio

Dettagli

Corso di Informatica 1 Esercitazione n. 4

Corso di Informatica 1 Esercitazione n. 4 Corso di Informatica 1 Esercitazione n. 4 Marco Liverani Esercizio n. 1 Letti in input due numeri interi n > 0 e k > 1 costruire un array A di n numeri interi casuali minori di 100 che non siano multipli

Dettagli

$QDOLVLGHOSURJUDPPDTXDGUDWR

$QDOLVLGHOSURJUDPPDTXDGUDWR $QDOLVLGHOSURJUDPPDTXDGUDWR /* */ calcolare l area del quadrato #include main(){ int lato, area; printf("lato "); scanf("%d", &lato); if(lato < 0) printf("errore nei dati \n"); else { area =

Dettagli

Argomento 7. Studio di funzione

Argomento 7. Studio di funzione Argomento 7 Studio di funzione Studiare una funzione significa ottenere, mediante strumenti analitici (iti, derivate, ecc.) informazioni utili a disegnare un grafico qualitativo della funzione data. I

Dettagli

Problemi e algoritmi. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05 (da U. de' Liguoro - Alg. & Spe. 03/04)

Problemi e algoritmi. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05 (da U. de' Liguoro - Alg. & Spe. 03/04) Problemi e algoritmi Il che cosa e il come Il che cosa ed il come Problema: descrive che cosa si deve calcolare Specifica (di un algoritmo): descrive che cosa calcola un algoritmo Algoritmo: descrive come

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica AlgoBuild: Strutture iterative e selettive Prof. Christian Esposito Corso di Laurea in Ingegneria Meccanica e Gestionale (Classe I) A.A. 2016/17 AlgoBuild: Strutture iterative

Dettagli

CAPITOLO 2. Divide et Impera

CAPITOLO 2. Divide et Impera CAPITOLO 2 Divide et Impera In questo capitolo discuteremo alcuni algoritmi progettati mediante la tecnica di progettazione del Divide et Impera. Algoritmi progettati usando questa tecnica consistono di

Dettagli

Problemi e algoritmi. Il che cosa ed il come. Il che cosa ed il come. Il che cosa e il come

Problemi e algoritmi. Il che cosa ed il come. Il che cosa ed il come. Il che cosa e il come Problemi e algoritmi Il che cosa e il come Problema: descrive che cosa si deve calcolare Specifica (di un algoritmo): descrive che cosa calcola un algoritmo Algoritmo: descrive come effettuare un calcolo

Dettagli

Aritmetica modulare, numeri primi e crittografia

Aritmetica modulare, numeri primi e crittografia Università di Pavia 14 Giugno 2016 Numeri primi Definizione Un intero n > 1 è un numero primo se non esistono due interi a, b > 1 tali che n = ab. Sono dunque numeri primi: 2, 3, 5, 7, 11, 13, 17, 19,

Dettagli

Corso di Crittografia Prof. Dario Catalano. Firme Digitali

Corso di Crittografia Prof. Dario Catalano. Firme Digitali Corso di Crittografia Prof. Dario Catalano Firme Digitali Introduzione n Una firma digitale e l equivalente informatico di una firma convenzionale. n Molto simile a MA, solo che qui abbiamo una struttura

Dettagli

Matematica per l Economia, a.a Integrazione al libro di testo

Matematica per l Economia, a.a Integrazione al libro di testo Matematica per l Economia, a.a. 2016 2017 Integrazione al libro di testo Gianluca Amato 20 dicembre 2016 1 Note ed errata corrige Sezione 2.3, definizione di dominio. La definizione di dominio data dal

Dettagli

Strutture di Controllo Condizionali e Operatori Logici e Relazionali

Strutture di Controllo Condizionali e Operatori Logici e Relazionali Linguaggio C Strutture di Controllo Condizionali e Operatori Logici e Relazionali 1 Strutture di Controllo n Controllano il flusso di esecuzione di un programma Istruzioni di selezione: permettono di selezionare

Dettagli

Corso di Informatica 1 (IN110) Tutorato n. 3

Corso di Informatica 1 (IN110) Tutorato n. 3 Corso di Informatica 1 (IN110) Tutorato n. 3 Marco Liverani Esercizio n. 1 Letti in input tre array di interi con lo stesso numero n di elementi, costruisce un quarto array di numeri floating point con

Dettagli

Statistica Applicata all edilizia: Stime e stimatori

Statistica Applicata all edilizia: Stime e stimatori Statistica Applicata all edilizia E-mail: orietta.nicolis@unibg.it 15 marzo 2011 Statistica Applicata all edilizia: Indice 1 2 Statistica Applicata all edilizia: Uno dei problemi principali della statistica

Dettagli

Ordinamenti e crescita della complessità

Ordinamenti e crescita della complessità Ordinamenti e crescita della complessità Informatica@SEFA 07/08 - Lezione Massimo Lauria Venerdì, 7 Ottobre 07 Nota bibliografica: Il contenuto di questa e di alcune delle prossime

Dettagli

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara Sistemi lineari Lorenzo Pareschi Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara http://utenti.unife.it/lorenzo.pareschi/ lorenzo.pareschi@unife.it Lorenzo Pareschi (Univ. Ferrara)

Dettagli

Calcolo Numerico Laurea di base in Ingegneria Elettronica, Ingegneria delle Comunicazioni

Calcolo Numerico Laurea di base in Ingegneria Elettronica, Ingegneria delle Comunicazioni Calcolo Numerico Laurea di base in Ingegneria Elettronica, Ingegneria delle Comunicazioni Prof.ssa Laura Pezza (A.A. 2016-2017) IV Lezione del 06.03.2017 http://www.dmmm.uniroma1.it/ laura.pezza 1 Equazioni

Dettagli

Stima puntuale di parametri

Stima puntuale di parametri Probabilità e Statistica Esercitazioni a.a. 006/007 C.d.L.: Ingegneria per l Ambiente ed il Territorio, Ingegneria Civile, Ingegneria Gestionale, Ingegneria dell Informazione C.d.L.S.: Ingegneria Civile

Dettagli

Esercitazione 3. Oggi sono stati effettuati semplici esercizi in C utilizzando le seguenti istruzioni: if...else, while, printf, scanf

Esercitazione 3. Oggi sono stati effettuati semplici esercizi in C utilizzando le seguenti istruzioni: if...else, while, printf, scanf Riassunto Esercitazione 3 Oggi sono stati effettuati semplici esercizi in C utilizzando le seguenti istruzioni: if...else, while, printf, scanf Sono state introdotte anche le seguenti relazioni: uguaglianza:

Dettagli

Ricorsione. DD cap. 5 pp KP cap. 5 pp

Ricorsione. DD cap. 5 pp KP cap. 5 pp Ricorsione DD cap. 5 pp.160-184 KP cap. 5 pp.199-208 Un esempio Problema: prendere in input un intero e calcolarne il fattoriale se n>1 n!=n(n-1)(n-2)(n-3) 1; se n=0 o 1 n!=1. ma (n-1)! la definizione

Dettagli

Esercizi Capitolo 7 - Hash

Esercizi Capitolo 7 - Hash Esercizi Capitolo 7 - Hash Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle rispettive

Dettagli

Le Funzioni e la Ricorsione

Le Funzioni e la Ricorsione Aula V Dip. di Matematica G. Castelnuovo Univ. di Roma La Sapienza Le Funzioni e la Ricorsione Igor Melatti Slides disponibili (assieme ad altro materiale) in: http://www.dsi.uniroma1.it/ melatti/programmazione1.2007.2008.html

Dettagli

Equazioni. Le equazioni sono relazioni di uguaglianza tra due espressioni algebriche.

Equazioni. Le equazioni sono relazioni di uguaglianza tra due espressioni algebriche. Equazioni Le equazioni sono relazioni di uguaglianza tra due espressioni algebriche. Nelle espressioni compare una lettera, chiamata incognita. Possiamo attribuire un valore a questa incognita, e vedere

Dettagli

Università degli Studi di Verona. Esercizi. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie

Università degli Studi di Verona. Esercizi. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie Università degli Studi di Verona Dipartimento di Biotecnologie Laurea in Biotecnologie Corso di Informatica 2014/2015 Esercizi Gennaio 2015 - Sergio Marin Vargas Scrivere un programma Una volta che avete

Dettagli

I cicli. Iterazioni Calcolo della media Istruzioni break e continue

I cicli. Iterazioni Calcolo della media Istruzioni break e continue I cicli Iterazioni Calcolo della media Istruzioni break e continue Ciclo while p Vero A while() ; Falso Esegue una istruzione mentre una condizione è verificata Programmazione

Dettagli

Calcolo Numerico Laurea di base in Ingegneria Elettronica, Ingegneria delle Comunicazioni

Calcolo Numerico Laurea di base in Ingegneria Elettronica, Ingegneria delle Comunicazioni Calcolo Numerico Laurea di base in Ingegneria Elettronica, Ingegneria delle Comunicazioni Prof.ssa Laura Pezza (A.A. 2017-2018) III Lezione del 12.03.2018 http://www.dmmm.uniroma1.it/ laura.pezza 1 I metodi

Dettagli

( 5) 2 = = = +1

( 5) 2 = = = +1 1 IDENTITA ED EQUAZIONI Consideriamo la seguente uguaglianza: ( 2x + 3) 2 = 4x 2 +12x + 9 Diamo alcuni valori arbitrari all incognita x e vediamo se l uguaglianza risulta vera. Per x = 1 si avrà: ( 2 1+

Dettagli

Concetti chiave. Gli Array o Vettori. Array Elementi dell array Indici e lunghezza dell array Inizializzazione di vettori Array multidimensionali

Concetti chiave. Gli Array o Vettori. Array Elementi dell array Indici e lunghezza dell array Inizializzazione di vettori Array multidimensionali Concetti chiave Gli Array o Vettori Array Elementi dell array Indici e lunghezza dell array Inizializzazione di vettori Array multidimensionali Fino ad ora abbiamo utilizzato variabili scalari, ossia riferite

Dettagli

Prima prova di esonero 5 novembre 2007

Prima prova di esonero 5 novembre 2007 Università Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Corso di Informatica 1 (IN1) Prof. Marco Liverani a.a. 2007/2008 Prima prova di esonero 5 novembre 2007 Esercizio n. 1 (max 10

Dettagli

Equazioni, funzioni e algoritmi: il metodo delle secanti

Equazioni, funzioni e algoritmi: il metodo delle secanti Equazioni, funzioni e algoritmi: il metodo delle secanti Christian Ferrari 1 Introduzione La risoluzione di equazioni in R ci ha mostrato che solo per le equazioni polinomiali di primo e secondo grado,

Dettagli

Serie numeriche e serie di potenze

Serie numeriche e serie di potenze Serie numeriche e serie di potenze Sommare un numero finito di numeri reali è senza dubbio un operazione che non può riservare molte sorprese Cosa succede però se ne sommiamo un numero infinito? Prima

Dettagli

0.1 Condizione sufficiente di diagonalizzabilità

0.1 Condizione sufficiente di diagonalizzabilità 0.1. CONDIZIONE SUFFICIENTE DI DIAGONALIZZABILITÀ 1 0.1 Condizione sufficiente di diagonalizzabilità È naturale porsi il problema di sapere se ogni matrice sia o meno diagonalizzabile. Abbiamo due potenziali

Dettagli

Schemi di programma: ricerca e verifica

Schemi di programma: ricerca e verifica Schemi di programma: ricerca e verifica I Molti problemi riguardano la ricerca di elementi in intervalli o la verifica di proprietà. I Sviluppiamo schemi di programma (dimostrabilmente corretti) che realizzano

Dettagli

Corso di Crittografia

Corso di Crittografia Corso di Crittografia Esercizi Addizionali su Cifrari Simmetrici e MAC 1. Sia F : {0, 1} k {0, 1}`! {0, 1} L una funzione pseudocasuale sicura e si consideri il seguente cifrario simmetrico. Lo spazio

Dettagli

nota 2. Gruppi, anelli, campi. Gruppi. Anelli. Campi. Applicazioni: il test di primalità di Miller-Rabin.

nota 2. Gruppi, anelli, campi. Gruppi. Anelli. Campi. Applicazioni: il test di primalità di Miller-Rabin. nota 2. Gruppi, anelli, campi. Gruppi. Anelli. Campi. Applicazioni: il test di primalità di Miller-Rabin. 1 1. Gruppi. In questo paragrafo introduciamo i gruppi. Diamo diversi esempi importanti di gruppi

Dettagli

Esercizi sulla complessità di frammenti di pseudo-codice

Esercizi sulla complessità di frammenti di pseudo-codice Esercizi sulla complessità di frammenti di pseudo-codice Esercizio 1 Si determini la complessità temporale del seguente frammento di pseudo-codice in funzione di n. Il ciclo contiene solo istruzioni elementari;

Dettagli

do { printf("inserisci due numeri reali:"); scanf("%f %f", &a, &b);

do { printf(inserisci due numeri reali:); scanf(%f %f, &a, &b); Fondamenti di Informatica T-1 modulo 2 Laboratorio 02 1 Obiettivi di questa esercitazione 1. Valutazione in cortocircuito i 2. If innestati 3. Switch 4. Cicli 5. Funzioni e Header File 2 Valutazione in

Dettagli

Esercizi vari. Alberto Montresor. 19 Agosto, 2014

Esercizi vari. Alberto Montresor. 19 Agosto, 2014 Esercizi vari Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle rispettive soluzioni

Dettagli

do { printf("inserisci due numeri reali:"); scanf("%f %f", &a, &b); while(b!=0 && a/b<0);

do { printf(inserisci due numeri reali:); scanf(%f %f, &a, &b); while(b!=0 && a/b<0); Obiettivi di questa esercitazione Fondamenti di Informatica T-1 modulo 2 Laboratorio 02 1. Valutazione in cortocircuito i 2. If innestati 3. Switch 4. Cicli 5. Funzioni e Header File 1 2 Valutazione in

Dettagli

Calcolo algebrico e polinomi 1 / 38

Calcolo algebrico e polinomi 1 / 38 Calcolo algebrico e polinomi 1 / 38 2 / 38 Calcolo Algebrico e Polinomi: introduzione In questa lezione esporremo i principali concetti relativi al calcolo algebrico elementare e ai polinomi. In particolare,

Dettagli

Concetti chiave. Istruzioni Iterative. Strutture di controllo iterative while do-while for Cicli annidati

Concetti chiave. Istruzioni Iterative. Strutture di controllo iterative while do-while for Cicli annidati Concetti chiave Istruzioni Iterative Strutture di controllo iterative while do-while for Cicli annidati Altre Espressioni Operatori Aritmetici +, -, *, /, si applicano a qualunque tipo Operatore Aritmetico

Dettagli

Introduzione al C. Esercitazione 2bis. S. Salza, C. Ciccotelli, D. Bloisi, S. Peluso, A. Pennisi

Introduzione al C. Esercitazione 2bis. S. Salza, C. Ciccotelli, D. Bloisi, S. Peluso, A. Pennisi Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Esercitazione 2bis S. Salza, C. Ciccotelli, D. Bloisi, S. Peluso, A. Pennisi Ricorsione

Dettagli

Laboratorio di Algoritmi e Strutture Dati Ingegneria e Scienze Informatiche - Cesena A.A

Laboratorio di Algoritmi e Strutture Dati Ingegneria e Scienze Informatiche - Cesena A.A Ingegneria e Scienze Informatiche - Cesena A.A. 2013-2014 dilena@cs.unibo.it, pietro.dilena@unibo.it Note introduttive sul corso Modalità d esame Note introduttive sul corso Finalità: fornire competenze

Dettagli

Dati e Algoritmi 1: A. Pietracaprina. Text Processing

Dati e Algoritmi 1: A. Pietracaprina. Text Processing Dati e Algoritmi 1: A. Pietracaprina Text Processing 1 Campi Applicativi text editing web searching computational biology (e.g., DNA analysis) vision... 2 Definizioni Stringa P P P[0]P[1]... P[m 1] (lunghezza

Dettagli

Dichiarazioni e tipi predefiniti nel linguaggio C

Dichiarazioni e tipi predefiniti nel linguaggio C Politecnico di Milano Dichiarazioni e tipi predefiniti nel linguaggio C Variabili, costanti, tipi semplici, conversioni di tipo. Premessa Programmi provati sul compilatore Borland C++ 1.0 Altri compilatori:

Dettagli

(g(x) = 0 vicino a c)

(g(x) = 0 vicino a c) Lezione del 15 ottobre. Limiti di funzioni. Calcolo di iti. 1. Sia dato un punto c R; per ciascun numero reale positivo δ > 0, l insieme dei punti che distano da c per meno di δ, cioe l intervallo ]c δ,

Dettagli

Programmi su più moduli - Esempio

Programmi su più moduli - Esempio Programmi su più moduli - Esempio Calcolo del logaritmo in base qualunque Incapsulare la logica di calcolo in una funzione PASSO 1: definisco la dichiarazione della funzione (nome, parametri di input e

Dettagli

Elementi di Algebra e di Matematica Discreta Numeri interi, divisibilità, numerazione in base n

Elementi di Algebra e di Matematica Discreta Numeri interi, divisibilità, numerazione in base n Elementi di Algebra e di Matematica Discreta Numeri interi, divisibilità, numerazione in base n Cristina Turrini UNIMI - 2016/2017 Cristina Turrini (UNIMI - 2016/2017) Elementi di Algebra e di Matematica

Dettagli

Esercizi proposti. Problema 3: Calcolare il numero di occorrenze del valore massimo in una sequenza di interi Stato iniziale:? Stato finale:?

Esercizi proposti. Problema 3: Calcolare il numero di occorrenze del valore massimo in una sequenza di interi Stato iniziale:? Stato finale:? Esercizi proposti Problema 1: Calcolare il numero di occorrenze di un valore dato in una sequenza data Stato iniziale: {dim K, val V, c[0] V 0,..., c[k-1] V K-1 } K > 0 Stato finale: {occ #{ j j 2 [0,K-1]

Dettagli