Il Test di Primalità Miller-Rabin
|
|
- Luciano Luigi Locatelli
- 5 anni fa
- Visualizzazioni
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 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
Dettagliuna 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
DettagliNumber 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
Dettagliuna 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
DettagliTeoria 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
DettagliNumber 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
DettagliTeoria 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
DettagliTeoria 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
DettagliFattorizzazione 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
DettagliL 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à)
DettagliCrittografia 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
DettagliNUMERI 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
Dettagliuna 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
DettagliI 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
DettagliDunque 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
DettagliDIARIO 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
DettagliTUTORAGGIO 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
DettagliStrutture 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
DettagliTeoria 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
DettagliCalcolatori 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
Dettagliesistenza 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:
DettagliCorso 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
DettagliE 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
DettagliGregorio 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
DettagliCifrario 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à
DettagliCause 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
DettagliCorso 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
DettagliCrittografia. 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:
DettagliNell 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
DettagliAnno 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
DettagliIntroduzione 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,
DettagliTecniche 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
DettagliGregorio 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
DettagliAlcuni 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
DettagliMatematica 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
DettagliPer 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
DettagliRicerca 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
DettagliCOMPLESSITÀ 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à
DettagliPROGRAMMAZIONE: 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
DettagliAnalisi 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
DettagliCorso 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
DettagliTUTORAGGIO 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
DettagliESERCITAZIONI 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
DettagliIncontri 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
DettagliSoluzioni 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. +/
DettagliCostruiamo 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
DettagliLezione 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
DettagliUn 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
DettagliQUINTO 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
DettagliCorso 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 /* */ 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 =
DettagliArgomento 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
DettagliProblemi 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
DettagliFondamenti 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
DettagliCAPITOLO 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
DettagliProblemi 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
DettagliAritmetica 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,
DettagliCorso 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
DettagliMatematica 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
DettagliStrutture 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
DettagliCorso 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
DettagliStatistica 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
DettagliOrdinamenti 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
DettagliSistemi 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)
DettagliCalcolo 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
DettagliStima 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
DettagliEsercitazione 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:
DettagliRicorsione. 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
DettagliEsercizi 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
DettagliLe 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
DettagliEquazioni. 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
DettagliUniversità 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
DettagliI 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
DettagliCalcolo 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
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+
DettagliConcetti 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
DettagliPrima 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
DettagliEquazioni, 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,
DettagliSerie 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
Dettagli0.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
DettagliSchemi 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
DettagliCorso 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
Dettaglinota 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
DettagliEsercizi 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;
Dettaglido { 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
DettagliEsercizi 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
Dettaglido { 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
DettagliCalcolo 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,
DettagliConcetti 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
DettagliIntroduzione 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
DettagliLaboratorio 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
DettagliDati 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
DettagliDichiarazioni 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)
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 δ,
DettagliProgrammi 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
DettagliElementi 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
DettagliEsercizi 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