Appunti di Matematica Discreta (19 novembre 2009)

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Appunti di Matematica Discreta (19 novembre 2009)"

Transcript

1 Appunti di Matematica Discreta (19 novembre 2009) 1 1 I numeri interi Indichiamo con Z l insieme dei numeri interi, cioè Z = {..., 3, 2, 1, 0, 1, 2, 3,...}. Se parliamo di interi positivi indichiamo l insieme {1, 2, 3,...}. indichiamo invece l insieme { 1, 2, 3,...}. Con l espressione interi negativi 1.1 Operazioni sui numeri interi Sappiamo che su Z sono definite le due operazioni di somma e moltiplicazione che soddisfano alle seguenti proprietà: s 1 ) a + b = b + a la somma è commutativa s 2 ) a + (b + c) = (a + b) + c la somma è associativa s 3 ) a + 0 = 0 + a = a 0 è l elemento neutro per la somma s 4 ) a + ( a) = ( a) + a = 0 ogni elemento ha un inverso rispetto alla somma p 1 ) ab = ba il prodotto è commutativo (1) p 2 ) a(bc) = (ab)c il prodotto è associativo p 3 ) a 1 = 1 a = a 1 è l elemento neutro per il prodotto d 1 ) a(b + c) = ab + ac il prodotto è distributivo rispetto alla somma. È importante osservare che per la somma e il prodotto non valgono le stesse proprietà. La proprietà s 4 dice che per ogni intero n possiamo trovare un altro intero y tale che n + y è uguale all elemento neutro della somma (cioè 0). La stessa proprietà per il prodotto suonerebbe così: per ogni intero z possiamo trovare un intero x tale che z x è uguale all elemento neutro del prodotto (cioè 1). Ma noi sappiamo che tra gli interi l equazione zx = 1 ha soluzione solo per z = 1 e z = 1. Quindi in Z tutti gli elementi hanno un inverso rispetto alla somma ma non tutti gli elementi hanno l inverso rispetto al prodotto. È importante a questo punto ricordare che per i numeri razionali e i numeri reali ogni numero diverso da 0 ha l inverso rispetto al prodotto. Osservazione 1 Qualcuno potrebbe osservare che esiste una terza operazione fra gli interi: la sottrazione. Per semplicità non daremo alla sottrazione la dignità di una operazione a se stante, ma la considereremo semplicemente l operazione inversa rispetto alla somma. Lavorando con i numeri interi non è possibile in generale effettuare la divisione classica in quanto 5 diviso 2 non è un numero intero. Sui numeri interi è possibile però introdurre il concetto di divisione euclidea. Dati due interi a, b con b 0, eseguire la divisione euclidea fra a e b significa calcolare due interi q, r, detti rispettivamente quoziente e resto, tali che a = bq + r, e 0 r < b. (2) Se a e b sono entrambi positivi, il calcolo di quoziente e resto è un operazione familiare (intuitivamente sottraiamo b da a fino a quando non si ottiene un valore minore di b). Nel caso in cui a o b o entrambi siano negativi è necessario prestare più attenzione e ricordarsi che deve valere (2) quindi il resto deve essere sempre positivo. Si consiglia di studiare attentamente gli esempi che seguono.

2 2 1 I NUMERI INTERI Esempio 1 14 diviso 3 quoziente = 4, resto = 2 14 diviso 3 quoziente = 4, resto = 2 14 diviso 3 quoziente = 5, resto = 1 14 diviso 3 quoziente = 5, resto = 1 5 diviso 19 quoziente = 0, resto = 5 72 diviso 9 quoziente = 8, resto = 0 72 diviso 9 quoziente = 8, resto = 0 71 diviso 9 quoziente = 7, resto = 8 71 diviso 9 quoziente = 8, resto = 1 73 diviso 9 quoziente = 9, resto = 8 Per essere rigorosi dovremmo dimostrare che il quoziente ed il resto esistono sempre e sono unici, ma per semplicità omettiamo questa dimostrazione. Definizione 1 Dati due interi a, b con b 0, si dice che b divide a se il resto della divisione fra a e b è zero. In questo caso si dice anche che a è divisibile per b, e che a è un multiplo di b. Osserviamo che tutti i numeri interi sono multipli di 1 e 1 perché la divisione per 1 o 1 dà sempre resto 0. Inoltre, per b 0 abbiamo che 0 è divisibile per b in quanto 0 = b (cioè la divisione fra 0 e b dà quoziente 0 e resto 0). Definizione 2 Un numero intero p > 1 è detto primo se i suoi soli divisori positivi sono 1 e p. Se un numero non è primo è detto composto. Sappiamo dalla scuola media che i numeri composti possono essere fattorizzati nel prodotto di numeri primi. In questo senso i numeri primi possono essere visti come i mattoni con i quali tutti gli altri numeri vengono costruiti. Richiamiamo per completezza questo risultato (noto anche come Teorema Fondamentale dell Aritmetica) omettendone la dimostrazione. Teorema 1 Ogni numero intero maggiore di 1 può essere scomposto nel prodotto di numeri primi (non necessariamente distinti). La scomposizione è unica a meno dell ordinamento dei fattori. L enunciato di questo teorema necessita di alcune spiegazioni. La precisazione che i primi non sono necessariamente distinti è dovuta al fatto che in una scomposizione un numero primo può apparire più volte. Ad esempio 180 = Dire che la scomposizione è unica a meno dell ordinamento dei fattori, vuol dire che due fattorizzazioni dello stesso numero possono differire unicamente per l ordinamento dei primi che vi compaiono. Ad esempio abbiamo 15 = 3 5 e 15 = 5 3, ma non è possibile che un intero N si fattorizzi contemporaneamente come N = 3 11 e N = 5 7. I numeri primi sono usati in molti ambiti dell informatica e sono particolarmente importanti per gli algoritmi di crittografia. Data la loro importanza è confortante sapere che di numeri primi ne esistono infiniti, come dimostrato dal seguente teorema. Teorema 2 I numeri primi sono infiniti. Dimostrazione: Supponiamo per assurdo che esista un numero finito di numeri primi e indichiamoli con p 1, p 2,..., p n. Consideriamo il numero M = 1 + p 1 p 2 p n.

3 1.2 Massimo Comun Divisore e algoritmo di Euclide 3 Il numero M non è primo in quanto secondo la nostra ipotesi i numeri primi sono solamente p 1, p 2,..., p n e M è maggiore di ciascuno di essi. Ma se M non è primo, per il Teorema 1 potrà essere scomposto nel prodotto di numeri primi. Di conseguenza devono esistere almeno un numero primo p i che divide M. Ma questo è impossibile in quanto la divisione fra M e un qualsiasi p i da resto 1. Abbiamo quindi raggiunto un assurdo e di conseguenza deve essere sbagliata l ipotesi iniziale che esista solamente un numero finito di numeri primi. 1.2 Massimo Comun Divisore e algoritmo di Euclide Dati a, b con b 0 scriviamo a mod b per indicare il resto della divisione fra a e b (ad esempio scriviamo 17 mod 3 = 2). Scriviamo inoltre b a per indicare che b divide a (cioè che a mod b = 0), e b a per indicare che b non divide a (cioè che a mod b 0). Dati due interi a, b non entrambi nulli, il Massimo Comun Divisore fra a e b è il più grande intero positivo che divide sia a che b. Se d è il massimo comun divisore fra a e b scriviamo d = MCD(a, b). Esempio 2 MCD(48, 15) = 3 MCD(10, 6) = 2 MCD(15, 14) = 1 MCD(0, 24) = 24 MCD(48, 15) = 3 MCD( 48, 15) = 3 MCD( 33, 21) = 3 MCD( 15, 0) = 15. Per il calcolo di MCD(a, b) si può utilizzare il metodo che abbiamo imparato alle scuole medie: si scrivono le fattorizzazioni di a e b e si prendono tutti i fattori comuni con il minimo esponente. Sfortunatamente, quando a e b sono grandi è molto dispendioso calcolare la loro fattorizzazione e di conseguenza questa strada non è praticabile. Nella pratica quindi per il calcolo del MCD si utilizza un metodo diverso molto più efficiente noto come algoritmo di Euclide. Osserviamo che possiamo assumere che a e b siano non negativi in quanto MCD(a, b) = MCD( a, b ). Se b = 0 abbiamo MCD(a, b) = a e non c è nulla da calcolare. Se b 0 l algoritmo di Euclide consiste in una serie di divisioni e termina quando una divisione produce un resto uguale a zero. Più precisamente, l algoritmo di Euclide genera la sequenza di valori: r 0 = a, r 1 = b, r 2 = r 0 mod r 1, r 3 = r 1 mod r 2,... r i = r i 1 mod r i 2,... e così via fino a quando non si trova un valore r n = 0. Il MCD fra a e b è dato da r n 1 cioè dall ultimo resto non zero della sequenza. Esempio 3 Per calcolare il massimo comun divisore fra 388 e 123 procediamo nel seguente modo: 391 diviso 123 quoziente = 3, resto = diviso 22 quoziente = 5, resto = diviso 13 quoziente = 1, resto = 9 13 diviso 9 quoziente = 1, resto = 4 9 diviso 4 quoziente = 2, resto = 1 4 diviso 1 quoziente = 4, resto = 0 L ultimo resto non nullo è 1, che quindi è il massimo comun divisore di 391 e 123. Nell esempio appena visto diciamo che l algoritmo di Euclide ha generato la sequenza 391, 123, 22, 13, 9, 4, 1, 0 (3) dove i primi due termini sono gli interi dei quali vogliamo calcolare il MCD mentre gli altri termini sono i resti delle divisioni effettuate durante il procedimento.

4 4 1 I NUMERI INTERI Esempio 4 Per calcolare il massimo comun divisore fra 207 e 741 procediamo nel seguente modo: 207 diviso 741 quoziente = 0, resto = diviso 207 quoziente = 3, resto = diviso 120 quoziente = 1, resto = diviso 87 quoziente = 1, resto = diviso 33 quoziente = 2, resto = diviso 21 quoziente = 1, resto = diviso 12 quoziente = 1, resto = 9 12 diviso 9 quoziente = 1, resto = 3 9 diviso 3 quoziente = 3, resto = 0 L ultimo resto non nullo è 3, che quindi è il massimo comun divisore di 207 e 741. La sequenza generata dall algoritmo di Euclide è 207, 741, 207, 120, 87, 33, 21, 12, 9, 3, 0. Data l importanza dell algoritmo di Euclide dimostriamo ora la sua correttezza, cioè che esso restituisce effettivamente MCD(a, b). Per semplicità spezziamo la dimostrazione in due parti: un primo lemma che giustifica l utilizzo della divisione euclidea, ed un teorema principale che mostra la correttezza dell algoritmo. Lemma 1 Dati due interi a, b con b 0 sia r = a mod b. Abbiamo MCD(a, b) = MCD(b, r). Dimostrazione: Per dimostrare il Lemma, dimostreremo che ogni intero che divide sia a che b divide anche sia b che r, e viceversa, ogni intero che divide sia b che r divide anche sia a che b. Di conseguenza i divisori comuni di a e b coincidono con i divisori comuni di b e r. Avremo allora che anche il massimo dei divisori comuni dovrà essere uguale nei due casi e quindi MCD(a, b) = MCD(b, r). Sia q il quoziente della divisione tra a e b. Abbiamo quindi a = bq + r. Sia ora c un intero che divide sia a che b. Possiamo allora scrivere a = αc e b = βc. Abbiamo che r = a bq = αc βcq = c(α βq) e di conseguenza r è un multiplo di c che quindi divide sia b che r. Analogamente, se d divide sia b che r abbiamo b = dγ e r = dρ da cui a = bq + r = dγq + dρ = d(γq + ρ) e quindi d divide sia a che b. Teorema 3 L algoritmo di Euclide calcola correttamente il Massimo Comun Divisore. Dimostrazione: Per prima cosa dimostriamo che l algoritmo di Euclide fornisce sempre un risultato, cioè che termina dopo un numero finito di passi. Osserviamo che essendo r 2 il resto della divisione tra a e b abbiamo che 0 r 2 < b (b è positivo per ipotesi). Analogamente, essendo r 3 il resto della divisione tra b e r 2 abbiamo 0 r 3 < r 2. In generale abbiamo b = r 1 > r 2 > r 3 > > r n 1 > r n = 0. In altre parole, i resti generati dall algoritmo di Euclide diminuiscono ad ogni passo. Dato che la sequenza parte con il valore b e termina non appena viene raggiunto lo zero abbiamo che l algoritmo

5 1.3 L algoritmo di Euclide esteso 5 di Euclide termina in al più b passi (vedremo in seguito che il numero di passi realmente effettuato è molto minore). Mostriamo ora che il valore restituito dall algoritmo di Euclide è effettivamente il Massimo Comun Divisore tra a e b. Osserviamo che per il Lemma 1 abbiamo MCD(a, b) = MCD(b, r 2 ) = MCD(r 2, r 3 ) = MCD(r n 1, r n ). (4) Dato che r n = 0, MCD(r n 1, r n ) = r n 1. Quindi abbiamo che MCD(a, b) è uguale a r n 1 (l ultimo resto diverso da zero) che è il valore restituito dall algoritmo di Euclide. 1.3 L algoritmo di Euclide esteso Abbiamo visto nella sezione precedente, che dati due interi a, b non entrambi nulli, l algoritmo di Euclide permette di calcolare il loro massimo comun divisore. L algoritmo di Euclide consiste in una serie di divisioni e genera una sequenza di resti. Il procedimento termina quando si incontra un resto uguale a 0 e l ultimo resto non nullo è il massimo comun divisore fra a e b. Esempio 5 Per calcolare il massimo comun divisore fra 1876 e 365 l algoritmo di Euclide procede nel seguente modo: 1876 diviso 365 quoziente = 5, resto = diviso 51 quoziente = 7, resto = 8 51 diviso 8 quoziente = 6, resto = 3 8 diviso 3 quoziente = 2, resto = 2 3 diviso 2 quoziente = 1, resto = 1 2 diviso 1 quoziente = 2, resto = 0 Abbiamo quindi che l algoritmo di Euclide genera la sequenza 1876, 365, 51, 8, 3, 2, 1, 0. (5) L ultimo elemento non nullo della sequenza è 1, che quindi è il massimo comun divisore. L algoritmo di Euclide esteso permette di calcolare, oltre a d = MCD(a, b), anche due interi s, t tali che as + bt = d. Nell Esempio 5, dato che MCD(1876, 365) = 1, l algoritmo di Euclide esteso ci fornisce due interi s, t tali che 1876s + 365t = 1. Diciamo che esprimiamo il MCD come combinazione lineare di a e b. Il procedimento seguito dall algoritmo di Euclide esteso è quello di esprimere ogni termine della sequenza dei resti come combinazione lineare di a e b. Riprendendo l Esempio 5 esprimiamo ogni elemento della sequenza (5) come combinazione lineare di 1876 e 365. Per quanto riguarda i primi due termini della sequenza non ci sono difficoltà e scriviamo 1876 = = (6) Per il terzo termine della sequenza, 51, ricordiamo che esso è il resto della divisione tra 1876 e 365, divisione che ha come quoziente 5. Quindi vale: 51 = Se al posto di 1876 e 365 scriviamo le combinazioni lineari (6) otteniamo: 51 = ( ) 5( ) e svolgendo i conti: 51 = (7)

6 6 1 I NUMERI INTERI Per gli altri termini della sequenza si procede analogamente: abbiamo 8 = , quindi usando la seconda di (6) e (7) abbiamo da cui 8 = ( ) 7( ) 8 = (8) Per il successivo termine della sequenza abbiamo 3 = , quindi, usando (7) e (8) da cui e infine: 3 = ( ) 6( ) 3 = , (9) 2 = = = = Abbiamo quindi trovato che 1876s + 365t = 1 per s = 136 e t = 699. Esempio 6 Applichiamo l algoritmo di Euclide esteso per trovare il d = MCD(867, 120) e per trovare due interi s, t tali che 867s + 120t = d. Otteniamo la sequenza 867 = = diviso 120 quoziente 7, resto = diviso 27 quoziente 4, resto = diviso 12 quoziente 2, resto 3 3 = diviso 3 quoziente 4, resto 0 Abbiamo quindi che MCD(867, 120) = 3 e che = 3. Osserviamo che la terza riga è stata ottenuta sottraendo 7 volte la seconda riga dalla prima (7 è il quoziente fra 867 e 120). Analogamente, la quarta riga è stata ottenuta sottraendo 4 volte la terza riga dalla seconda (4 è il quoziente della divisione fra 120 e 27), e cosiì via fino a quando non è stato ottenuto un resto uguale a zero. L algoritmo di Euclide esteso si applica quando a e b sono entrambi non negativi. Per calcolare i coefficienti s, t nel caso in cui a, b o entrambi siano negativi, il metodo più semplice consiste nell applicare l algoritmo di Euclide esteso a a e b e nel cambiare successivamente il segno dei valori s e t trovati. Questo procedimento è descritto nel seguente esempio. Esempio 7 Vogliamo calcolare d = MCD(519, 123) e trovare due interi s, t tali che 519s 123t = d. Cominciamo applicando l algoritmo di Euclide esteso alla coppia 519, = = diviso 123 quoziente 4, resto = diviso 27 quoziente 4, resto = diviso 15 quoziente 1, resto = diviso 12 quoziente 1, resto 3 3 = diviso 3 quoziente 4, resto 0 Abbiamo quindi che 3 = MCD(519, 123) = MCD(519, 123). Inoltre 3 = = ( 123) 38, di conseguenza i valori cercati sono s = 9 e t = 38.

7 1.4 Il minimo comune multiplo Il minimo comune multiplo Dati due interi a, b non nulli, il minimo comune multiplo fra a e b è il più piccolo intero positivo che è multiplo sia di a che di b. Se m è il minimo comune multiplo di a e b scriviamo m = mcm(a, b). Esempio 8 mcm(48, 15) = 240 mcm(10, 6) = 30 mcm(15, 14) = 210 mcm(48, 15) = 240 mcm( 48, 15) = 240 mcm( 33, 21) = 231. Anche per il calcolo di mcm(a, b) si può utilizzare il metodo che abbiamo imparato alle scuole medie: si scrivono le fattorizzazioni di a e b e si prendono i fattori comuni e non comuni con il massimo esponente. Sfortunatamente, come abbiamo già osservato parlando del MCD, quando a e b sono grandi è molto dispendioso calcolare la loro fattorizzazione e di conseguenza questa strada non è praticabile. Per il calcolo del mcm utilizzeremo invece la seguente formula (che per semplicità non dimostriamo): ab mcm(a, b) = MCD(a, b). (10) Ad esempio abbiamo: mcm(273, 399) = = = MCD(273, 399) L equazione diofantea ax + by = c In questa sezione studieremo il seguente problema: dati tre interi qualsiasi a, b, c vogliamo trovare per quali coppie di numeri interi x, y vale la relazione ax + by = c. Le equazioni di questo tipo sono dette equazioni diofantee. Esempio 9 Un esempio di equazione diofantea è il seguente: trovare una coppia di interi x, y tali che 867x + 120y = 15. A prima vista questo problema può sembrare molto difficile; tutte le tecniche che sono state studiate alle superiori non si possono applicare a causa della richiesta che le soluzioni x, y siano intere. Possiamo però osservare che l Esempio 6 ci fornisce la coppia di numeri (9, 65) tali che = 3. Moltiplicando entrambi i membri di questa uguaglianza per 5 otteniamo la relazione 867 (9 5) ( 65 5) = 3 5 da cui = 15. Abbiamo quindi che l equazione 867x + 120y = 15 ammette la soluzione x = 45, y = 325. Nel esempio precedente abbiamo ottenuto la soluzione dell equazione diofantea utilizzando i valori restituiti dall algoritmo di Euclide esteso. Il seguente lemma ci mostra che questa strada si può applicare in molte situazioni. Lemma 2 Data l equazione diofantea ax + by = c, se a e b non sono entrambi nulli e MCD(a, b) divide c allora possiamo trovare una soluzione dell equazione utilizzando l algoritmo di Euclide esteso. Dimostrazione: Sia d = MCD(a, b), e siano s, t i valori restituiti dall algoritmo di Euclide esteso tali che as + bt = d. Dato che per ipotesi d c abbiamo che c/d è un numero intero. Abbiamo allora as + bt = d a(sc/d) + b(tc/d) = c. Possiamo concludere quindi che x = sc/d e y = tc/d sono due numeri interi e costituiscono una soluzione dell equazione diofantea.

8 8 1 I NUMERI INTERI Esempio 10 Cosa succede se uno o entrambi gli interi a o b sono negativi? Il procedimento non cambia: è sufficiente stare attenti ai segni. Ad esempio, per risolvere l equazione diofantea 116x + 88y = 100 applichiamo l algoritmo di Euclide esteso ai valori 116, 88 ottenendo che il loro MCD è 4 e che = 4. Abbiamo quindi che = 4 Moltiplicano entrambi i termini per 25 = 100/4 otteniamo = 100 e possiamo concludere che una soluzione del problema proposto è x = 75, y = 100. Osservazione 2 I risultati precedenti ci mostrano che quando d = MCD(a, b) divide c, siamo in grado di trovare una soluzione dell equazione diofantea ax + by = c. È immediato però osservare che partendo da una soluzione particolare x 0, y 0 possiamo calcolare una famiglia infinita di soluzioni. Ponendo infatti α = a/d, β = b/d abbiamo che se x 0, y 0 è una soluzione dell equazione diofantea lo è anche la coppia x 0 + kβ, y 0 kα (11) per ogni intero k. Abbiamo infatti ( ) ( ) a x 0 + βk + b y 0 αk = ax 0 + (ab/d)k + by 0 (ab/d)k = ax 0 + by 0 = c. Esempio 11 Dall Esempio 6 sappiamo che MCD(867, 120) = 3 e che x = 45, y = 325 è una soluzione dell equazione diofantea 867x + 120y = 15. Dato che 867/3 = 289 e 120/3 = 40, per l osservazione precedente abbiamo che anche le coppie x = k, y = k sono soluzione dell equazione per qualsiasi valore di k. Ad esempio per k = 1, 2, 3, 2 otteniamo rispettivamente le soluzioni x = 5, y = 36; x = 35, y = 253; x = 75, y = 542; x = 125, y = 903. Abbiamo quindi che l equazione (11) ci fornisce una famiglia infinita di soluzioni dell equazione diofantea ax + by = c data una qualsiasi soluzione x 0, y 0. È naturale chiedersi se ci possono essere altre soluzioni al difuori di questa famiglia. Mostriamo ora che questo non è possibile. Sia x 1, y 1 un altra soluzione dell equazione diofantea. Deve essere: ax 1 + by 1 = ax 0 + by 0 (in quanto entrambi i termini sono uguali a c). Otteniamo allora: a(x 1 x 0 ) = b(y 0 y 1 ) dividendo per d = MCD(a, b) e ricordando che α = a/d, β = b/d otteniamo α(x 1 x 0 ) = β(y 0 y 1 ). (12) Abbiamo quindi che β(y 1 y 0 ) è un multiplo di α. Ma è facile verificare che α e β non hanno fattori in comune, e di conseguenza tutti i fattori di α devono essere contenuti in (y 0 y 1 ) che quindi sarà della forma αt per un qualche intero t. Sostituendo questa relazione nella (12) otteniamo da cui x 1 x 0 = βt. Concludendo abbiamo che α(x 1 x 0 ) = βαt x 1 = x 0 + βt, y 1 = y 0 αt

9 1.6 Esercizi su MCD ed equazioni diofantee 9 e quindi anche x 1, y 1 appartiene alla famiglia (11). Possiamo concludere che quando d = MCD(a, b) divide c, siamo in grado di descrivere tutte le infinite soluzioni dell equazione ax + by = c. Cosa succede quando d non divide c? Il procedimento che abbiamo visto non può essere applicato, potrebbe però esistere un diverso metodo di risoluzione. Il seguente lemma ci mostra che le cose non stanno così: in quanto se d c allora l equazione diofantea non ha soluzioni. Lemma 3 Se d = MCD(a, b) non divide c, l equazione diofantea ax + by = c non ha soluzioni. Dimostrazione: Supponiamo per assurdo che la coppia x 0, y 0 sia una soluzione dell equazione diofantea, cioè che ax 0 + by 0 = c. Dato che d = MCD(a, b) esistono due interi α, β tali che a = dα e b = dβ. Ne segue che c = ax 0 + by 0 = dαx 0 + dβy 0 = d(αx 0 + βy 0 ) e quindi dovremmo avere che d divide c. Possiamo riassumere i risultati di questa sezione nel seguente importante teorema. Teorema 4 Data l equazione diofantea ax+by = c con a e b non entrambi nulli, l equazione ammette soluzioni se e solo se d = MCD(a, b) divide c. Se le soluzioni esistono possiamo trovare una soluzione particolare mediante l algoritmo di Euclide esteso, e tutte le altre soluzioni mediante la formula (11) dell Osservazione 2. Infine dobbiamo chiederci cosa succede quando a e b sono entrambi nulli. In questo caso non possiamo neanche calcolare il loro MCD e di conseguenza il precedente teorema non può essere applicato. Per fortuna è immediato verificare che se a e b sono entrambi nulli, l equazione diofantea non ha soluzioni se c è diverso da zero, mentre quando c è anch esso uguale a zero ogni coppia di interi x 0, y 0 è soluzione dell equazione. 1.6 Esercizi su MCD ed equazioni diofantee La maggior parte degli esercizi che seguono si risolvono applicando quanto visto nella precedente sezione e in particolare il Teorema 4. Esercizio 1 Determinare per quali punti di coordinata intere passa la retta di equazione 2x 3 + 3y = 1. Soluzione. Ricordiamo che la retta passa per un punto se e solo se le coordinate del punto soddisfano l equazione della retta. Quindi affinché il punto (x 0, y 0 ) stia sulla retta data è necessario che sia 2x y 0 = 1. In altre parole vogliamo trovare le soluzioni (x, y) intere dell equazione 2x 3 + 3y = 3. Come prima cosa rendiamo interi tutti i coefficienti moltiplicando l equazione per 3 e ottenendo l equazione equivalente 2x + 9y = 3. (13) Vogliamo quindi trovare tutte le soluzioni intere di questa equazione. Per il Teorema 4 esistono delle soluzioni intere se e soltanto se MCD(2, 9) divide 3, condizione che è verificata in quanto MCD(2, 9) = 1. Per trovare tutte le soluzioni intere (cioè tutti i punti a coordinate intere per cui passa la retta) procediamo nel seguente modo. Per prima cosa dobbiamo determinare due interi s, t tali che 2s+9t = 1. In questo caso si vede che una soluzione è s = 4, t = 1; se la soluzione non si vede ad occhio possiamo determinarla usando la versione estesa dell algoritmo di Euclide. Moltiplicando la relazione 2( 4) + 9(1) = 1 per 3 otteniamo 2(12) + 9( 3) = 3 e quindi un primo punto che appartiene alla retta è (12, 3). Per trovare tutt le soluzioni dell equazione (13) ricordiamo che data una soluzione x 0, y 0 tutte le altre soluzioni hanno la forma (x 0 + 9λ, y 0 2λ) con λ Z (vedere l Osservazione 2). Nel nostro caso quindi le soluzioni hanno la forma: (12 + 9λ, 3 2λ) con λ Z.

10 10 1 I NUMERI INTERI Esercizio 2 Determinare per quali punti di coordinata intera passa la retta di equazione 3x 2 y 6 = 1 4. Soluzione. Come per l Esercizio 1 il primo passo consiste nel trasformare l equazione data in un equazione equivalente a coefficienti interi. Moltiplicando per 12 si ottiene l equazione 18x 2y = 3 della quale vogliamo trovare tutte le soluzioni intere. Il Teorema 4 ci dice che esistono soluzioni intere se e solo se MCD(18, 2) divide 3. Tale condizione non è verificata in quanto MCD(18, 2) = 2. Di conseguenza non esistono punti di coordinate intere attraversati dalla retta data. Esercizio 3 Dire per quali valori di t l equazione 100x + 120y = t ha soluzione. Soluzione. Per il Teorema 4 l equazione ha soluzione se e soltanto se MCD(100, 120) divide t. Dato che MCD(100, 120) = 20 l equazione ha soluzione quando t è un multiplo di 20, cioè ha la forma t = 20λ con λ Z. Esercizio 4 Dire per quali valori di a l equazione 999x 99y = a + 5 ha soluzione. Soluzione. Per il Teorema 4 l equazione ha soluzione se e soltanto se MCD(999, 99) divide a + 5. Per calcolare MCD(999, 99) osserviamo che esso è uguale a MCD(999, 99) e utilizziamo l algoritmo di Euclide che genera la sequenza: 999 diviso 99 quoziente = 10, resto = 9 99 diviso 9 quoziente = 11, resto = 0 Abbiamo quindi MCD(999, 99) = 9 e l equazione ha soluzione quando a + 5 è un multiplo di 9 cioè quando a è della forma a = 9λ 5 con λ Z. Quindi abbiamo a = {..., 14, 5, 4, 13,...}. Esercizio 5 Dire per quali valori di a l equazione 3ax + 2y = 1 ha soluzione. Soluzione. Per il Teorema 4 l equazione ha soluzione se e soltanto se MCD(3a, 2) = 1. Dato che 2 e 3 non hanno fattori comuni, affinché MCD(3a, 2) = 1 basta che a non contenga il fattore 2. In altre parole l equazione ha soluzione se a è dispari, mentre se a è pari l equazione non ha soluzione. Esercizio 6 Dire se la retta di equazione 7x 6 + 2y = 2 3 passa per un punto le cui coordinate siano entrambe intere e pari. Soluzione. Come al solito trasformiamo il problema iniziale in un equazione diofantea. Moltiplicando per 6 otteniamo l equazione 7x + 12y = 4 (14) della quale vogliamo trovare le soluzioni x, y intere e pari. Usiamo il solito procedimento per determinare tutte le soluzioni, e poi verificheremo se ce ne sono con x, y entrambi pari. Abbiamo MCD(7, 12) = 1, e utilizzando eventualmente l algoritmo di Euclide esteso, troviamo due interi s, t tali che 7s + 12t = 1. Ad esempio abbiamo 7( 5) + 12(3) = 1. Una soluzione particolare dell equazione (14) è quindi x 0 = 20, y 0 = 12. Per l Osservazione 2 abbiamo che le soluzioni di (14) sono date da x = λ, y = 12 7λ con λ Z. È immediato vedere che le soluzione con coordinate entrambe pari sono quelle che si ottengono con λ pari, ad esempio: x = 20, y = 12 (λ = 0), x = 4, y = 2 (λ = 2), x = 28, y = 16 (λ = 4), etc.

11 11 2 Congruenze In questo capitolo si introducono i concetti di modulo, congruenza e classe di resto. Si tratta di concetti semplici che costituiscono la base dei risultati che saranno illustrati nei capitoli successivi. Ricordiamo che dati due interi a, b con b 0 scriviamo a mod b (si legge a modulo b) per indicare il resto della divisione fra a e b. Ad esempio abbiamo: 17 mod 6 = 5, 24 mod 4 = 0, 15 mod 4 = 3, 15 mod 4 = 1. Introduciamo ora un altra definizione collegata al concetto di modulo. Definizione 3 Fissato un intero positivo n > 0, diciamo che a è congruo a b modulo n, e scriviamo a n b [oppure a b (mod n)], se a b è un multiplo di n. Ad esempio abbiamo in quanto 12 2 = 10 è un multiplo di 5. Abbiamo in quanto 1 8 = 9 che è multiplo di 3. Se a = b non è un multiplo di n scriviamo a n b oppure a b (mod n). Ad esempio e Notiamo che in entrambe le scritture 17 mod 3 = 2 e 21 6 (mod 5) il termine modulo si riferisce alla quantità per cui si divide (3 nel primo esempio, 5 nel secondo). In matematica e informatica capita spesso si usa l espressione lavoriamo modulo n per indicare che ogni operazione è fatta modulo n cioè considerando di ogni quatità, non il valore esatto, ma solamente il resto della divisione per n. Ad esempio, se lavoriamo modulo 10 vuol dire che di ogni grandezza intera consideriamo solamente il resto della divisione per 10 (in pratica quindi consideriamo solo la cifra delle unità). Data l importanza di questo concetto, nella prossima sezione introduciamo formalmente gli insiemi nei quali tutte le operazioni vengono effettuate modulo un fissato intero positivo n. 2.1 Gli insiemi Z n Introduciamo gli insiemi Z n considerando inizialmente il caso particolare n = 5. Osserviamo che Z può essere suddiviso in 5 sottoinsiemi [0] 5, [1] 5, [2] 5, [3] 5, [4] 5 così definiti: 1. [0] 5 contiene gli interi k tali che k 5 0; quindi [0] 5 = {..., 5, 0, 5, 10,...}; 2. [1] 5 contiene gli interi k tali che k 5 1; quindi [1] 5 = {..., 4, 1, 6, 11,...}; 3. [2] 5 contiene gli interi k tali che k 5 2; quindi [2] 5 = {..., 3, 2, 7, 12,...}; 4. [3] 5 contiene gli interi k tali che k 5 3; quindi [3] 5 = {..., 2, 3, 8, 13,...}; 5. [4] 5 contiene gli interi k tali che k 5 4; quindi [4] 5 = {..., 1, 4, 9, 14,...}; Osserviamo che questi sottoinsiemi sono disgiunti e che ogni intero appartiene ad uno di questi sottoinsiemi. In termini matematici si dice che questi sottoinsiemi formano una partizione di Z. Osserviamo anche che ogni intero t appartiene al sottoinsieme [r] 5 dove r è il resto della divisione fra t e 5 (cioè r = t mod 5). Ad esempio per sapere in quale sottoinsieme appartiene osserviamo che mod 5 = 1 quindi [1] 5. Analogamente [2] 5, 100 [0] 5 e così via. A causa di questa proprietà questi cinque sottoinsiemi sono chiamati classi di resto modulo 5. Indichiamo nel seguito con Z 5 l insieme delle classi di resto Z 5 = {[0] 5, [1] 5, [2] 5, [3] 5, [4] 5 }. L insieme Z 5 ha quindi esattamente 5 elementi Il motivo fondamentale per cui introduciamo le classi di resto è che date due classi di resto siamo in grado di sommarle e moltiplicarle in maniera simile a quanto facciamo per i numeri interi, razionali, reali, etc. Le regole fondamentali per eseguire la somma e le moltiplicazioni in Z 5 sono le seguenti: [a] 5 + [b] 5 = [(a + b) mod 5] 5, e [a] 5 [b] 5 = [ab mod 5] 5. (15) Informalmente queste regole si possono riassumere nel seguente modo: eseguiamo la somma e il prodotto tradizionale e poi prendiamo il resto della divisione per 5. Ad esempio abbiamo: [2] 5 + [1] 5 = [3] 5, [3] 5 + [4] 5 = [2] 5, [4] 5 + [1] 5 = [0] 5, [0] 5 + [2] 5 = [2] 5, [2] 5 [1] 5 = [2] 5, [3] 5 [3] 5 = [4] 5, [4] 5 [2] 5 = [3] 5, [0] 5 [2] 5 = [0] 5.

12 12 2 CONGRUENZE Tutto ciò che abbiamo appena visto nel caso n = 5, può essere ripetuto per un qualsiasi n > 0. Fissato n possiamo definire le classi di resto [0] n, [1] n,..., [n 1] n. La classe [i] n contiene tutti gli interi k tali che k n i cioè i numeri della forma i + λn con λ Z. Equivalentemente possiamo dire che [i] n contiene tutti gli interi che divisi per n danno resto i. Ad esempio abbiamo: [3] 13 = {..., 10, 3, 16, 29,...}. Indichiamo con Z n l insieme Z n = {[0] n, [1] n,..., [n 1] n }, che quindi ha esattamente n elementi. Dati due elementi di Z n li possiamo sommare e moltiplicare con le stesse regole viste nel caso n = 5: Ad esempio abbiamo: [a] n + [b] n = [(a + b) mod n] n, e [a] n [b] n = [ab mod n] n. (16) [3] 9 + [4] 9 = [7] 9, [3] 7 + [4] 7 = [0] 7, [10] 13 + [9] 13 = [6] 13, [1] 2 + [1] 2 = [0] 2, [3] 6 [2] 6 = [0] 6, [6] 9 [5] 9 = [3] 9, [9] 11 [8] 11 = [1] 11, [6] 12 [6] 12 = [0] 12. È immediato verificare che le operazioni di somma e prodotto in Z n soddisfano alle stesse proprietà che abbiamo visto per gli interi (vedi Sezione 1): s 1 ) [a] n + [b] n = [b] n + [a] n la somma è commutativa s 2 ) [a] n + ([b] n + [c] n ) = ([a] n + [b] n ) + [c] n la somma è associativa s 3 ) [a] n + [0] n = [0] n + [a] n = [a] n [0] n è l elemento neutro per la somma s 4 ) [a] n + [n a] n = [n a] n + [a] n = [0] n ogni elemento ha un inverso rispetto alla somma p 1 ) [a] n [b] n = [b] n [a] n il prodotto è commutativo (17) p 2 ) [a] n ([b] n [c] n ) = ([a] n [b] n )[c] n il prodotto è associativo p 3 ) [a] n [1] n = [1] n [a] n = [a] n [1] n è l elemento neutro per il prodotto d 1 ) [a] n ([b] n + [c] n ) = [a] n [b] n + [a] n [c] n il prodotto è distributivo rispetto alla somma. L unica proprietà non banale è la s 4 che dice che ogni elemento di Z n ha un inverso rispetto alla somma: in particolare, l inverso dell elemento [a] n è [n a] n. Ad esempio, in Z 13 l inverso di [5] 13 è [13 5] 13 = [8] 13, come possiamo verificare osservando che [5] 13 + [8] 13 = [0] 13. L esistenza dell inverso rispetto alla moltiplicazione sarà l argomento della prossima sezione. Osservazione 3 Su Z n è possibile definire l operazione di sottrazione secondo la regola [a] n [b] n = [a b mod n] n. Ad esempio: [4] 13 [8] 13 = [ 4 mod 13] = [9] 13. Per semplicità nel seguito trasformeremo spesso le sottrazioni in somme usando la formula [a] n [b] n = [a] n + [n b] n. 2.2 L equazione [a] n [x] n = [1] n In questa sezione vogliamo stabilire quali sono gli elementi di Z n che hanno un inverso rispetto al prodotto. In altre parole, vogliamo sapere per quali elementi [a] n Z n esiste una classe di resto [b] n tale che [a] n [b] n = [1] n. In altre parole ancora, vogliamo determinare per quali [a] n l equazione [a] n [x] n = [1] n (18) ammette soluzioni. Prima di procedere ricordiamo quello che già sappiamo sugli altri insiemi numerici: in Z l equazione ax = 1 ha soluzione solo per a = 1 e a = 1. In Q e in R, l equazione ax = 1 ha

13 2.2 L equazione [a] n [x] n = [1] n 13 soluzione per ogni a 0. Sorprendentemente, vedremo che la situazione in Z n è più simile a quella di Q e R che non a quella di Z. Osserviamo che l equazione [a] n [x] n = [1] n equivale a [ax] n = [1] n. Ci chiediamo quindi per quali a esiste x tale che ax mod n = 1, cioè il resto della divisione tra ax e n è esattamente uguale a 1. Se indichiamo con q il quoziente della divisione, si vuole che ax = nq + 1. In altre parole, l equazione (18) ha soluzione se e solo se esistono due interi x e q tali che ax nq = 1 (19) Quest ultima equazione è una nostra vecchia conoscenza e noi sappiamo che ammette soluzione se e solo se MCD(a, n) = MCD(a, n) = 1. Inoltre se MCD(a, n) = 1 sappiamo che mediante l algoritmo di Euclide esteso possiamo trovare x e q che soddisfano la (19). Il valore x mod n ci fornisce la classe di resto soluzione dell equazione (18). Esempio 12 Vogliamo risolvere l equazione [5] 22 [x] 22 = [1] 22. Per quanto detto sopra deve essere 5x mod 22 = 1. Abbiamo quindi l equazione diofantea: 5x 22t = 1 che è risolubile in quanto MCD(5, 22) = 1. Per tentativi, o utilizzando l algoritmo di Euclide esteso, troviamo che una soluzione è x = 13, t = 3. La soluzione dell equazione di partenza è quindi [ 13 mod 22] 22 = [9] 22. Osserviamo che la soluzione è corretta in quanto [5] 22 [9] 22 = [1] 22. Il risultato che abbiamo appena visto è sufficientemente importante da enunciarlo in un teorema. Teorema 5 L equazione [a] n [x] n = [1] n ha soluzione se e solo se MCD(a, n) = 1. Se la soluzione esiste possiamo trovarla mediante l algoritmo di Euclide esteso. Dato che [a] n ha un inverso moltiplicativo se e solo se l equazione [a] n [x] n = [1] n ha soluzione, usando il Teorema 5 siamo in grado di dare una risposta al problema di stabilire quali classi di resto di Z n hanno un inverso moltiplicativo. Corollario 1 La classe di resto [a] n Z n ha un inverso moltiplicativo se e solo se MCD(a, n) = 1. Se l inverso esiste lo possiamo trovare mediante l algoritmo di Euclide esteso. Esempio 13 Per trovare l inverso moltiplicativo della classe [10] 23, dobbiamo trovare x tale che 10x mod 23 = 1. Quindi dobbiamo risolvere l equazione 10x 23t = 1. Una soluzione è data da x = 7, t = 3 per cui l inversa della classe [10] 23 è la classe [7] 23. Osservazione 4 In analogia con i numeri razionali e reali, quando esiste l inverso moltiplicativo dell elemento [a] n si indica con [a] 1 n. Nell esempio precedente abbiamo quindi [10] 1 23 = [7] 23. Notiamo che, per definizione, per ogni elemento [a] n invertibile vale la relazione [a] n [a] 1 n = [1] n. Consideriamo ora il caso particolare in cui il modulo (cioè n) sia un numero primo. In questo caso abbiamo che per i = 1,..., n 1 MCD(i, n) = 1 (n è primo quindi non ha divisori più piccoli di lui diversi da 1). Di conseguenza, tutte le classi di resto, esclusa [0] n sono invertibili. Siamo quindi nella stessa situazione dei numeri razionali e dei numeri reali in cui tutti gli elementi diversi da zero hanno inverso moltiplicativo!

14 14 2 CONGRUENZE 2.3 Esercizi sulle congruenze Esercizio 7 Risolvere in Z 48 l equazione [11] 48 [x] 48 = [6] 48. Soluzione. Possiamo risolvere l esercizio in due modi. Il primo consiste nel trovare l inverso moltiplicativo di [11] 48, cioè trovare [y] 48 tale che [11] 48 [y] 48 = [1] 48 ([y] 48 esiste in quanto MCD(11, 48) = 1). Passando dall equazione diofantea 11x 48q = 1 otteniamo [y] 48 = [35] 48. A questo punto moltiplichiamo entrambi i termini dell equazione di partenza per [35] 48 ottenendo da cui [35] 48 [11] 48 [x] 48 = [35] 48 [6] 48 [1] 48 [x] 48 = [18] 48 e la soluzione è quindi [x] 48 = [18] 48. Il secondo metodo di risoluzione consiste nell osservare che x deve essere tale che il resto della divisione fra 11x e 48 sia 6. Quindi dobbiamo avere: 11x = 48q + 6. Con calcoli analoghi al caso precedente si ottiene ancora [x] 48 = [18] 48. Esercizio 8 Risolvere in Z 36 l equazione [15] 36 [x] 36 = [6] 36. Soluzione. Osserviamo che l esercizio è simile all Esercizio 7 per il quale avevamo visto due possibile metodi di risoluzione. In questo caso però, MCD(15, 36) 1, quindi [15] 36 non ha l inverso moltiplicativo in Z 36. Di conseguenza, il primo metodo di risoluzione usato nell Esercizio 7 non è applicabile. Utilizziamo allora il secondo metodo che consiste nel risolvere l equazione diofantea: 15x 36q = 6. Dato che MCD(15, 36) divide 6, l equazione è risolubile. Si vede immediatamente che una soluzione è x = 2, q = 1. L insieme di tutte le soluzione è dato allora da x = λ e q = 1 + 5λ con λ Z. Osserviamo che al variare di λ i valori assunti da x sono {..., 2, 10, 22, 34, 46,...}. Di conseguenza, le classi di resto soluzione dell equazione [15] 36 [x] 36 = [6] 36 sono [x] 36 = [10] 36, [x] 36 = [22] 36, [x] 36 = [34] 36 (provare per credere!). Esercizio 9 Risolvere in Z 36 l equazione [12] 36 [x] 36 = [6] 36. Soluzione. Procedendo come nell esercizio precedente abbiamo che x deve essere una soluzione dell equazione diofantea 12x 36q = 6. In questo caso però MCD(12, 36) non divide 6, quindi l equazione diofantea e la nostra equazione di partenza non hanno soluzioni. Osservazione 5 Combinando quanto abbiamo visto negli Esercizi 7, 8, e 9 possiamo concludere che l equazione di primo grado [a] n [x] n = [b] n in Z n ha una e una sola soluzione quando MCD(a, n) = 1. Se MCD(a, n) > 1 e MCD(a, n) non divide b l equazione non ha soluzioni, se infine MCD(a, n) > 1 e MCD(a, n) divide b allora l equazione ha più di una soluzione. È possibile dimostrare che in quest ultimo caso il numero di soluzioni coincide esattamente con MCD(a, n). Esercizio 10 Risolvere in Z 13 l equazione [3] 13 [x] 13 + [5] 13 = [6] 13 + [9] 13 [x] 13. Soluzione. Si procede come nelle equazioni di primo grado sui reali portando a sinistra dell uguale i termini con la [x] 13 e a destra gli altri termini. Otteniamo quindi da cui (essendo [3] 13 [9] 13 = [3] 13 + [4] 13 ) [3] 13 [x] 13 [9] 13 [x] 13 = [6] 13 [5] 13, [7] 13 [x] 13 = [1] 13. Risolvendo l equazione diofantea 7x 13q = 1 (o calcolando l inverso moltiplicativo di [7] 13, [7] 1 13 = [2] 13 ) otteniamo [x] 13 = [2] 13.

15 2.3 Esercizi sulle congruenze 15 Esercizio 11 Risolvere l equazione [13] 80 [x] 80 + [20] 80 = [68] 80 [13] 80 [x] 80. Soluzione. Riordinando i termini si ottiene l equazione equivalente: [26] 80 [x] 80 = [48] 80 Dato che MCD(26, 80) = 2 divide 48 l equazione ha due soluzioni (vedi Osservazione 5). Risolvendo l equazione diofantea 26x 80q = 48 si trovano le soluzioni [x] 80 = [8] 80 e [x] 80 = [48] 80. Esercizio 12 Dire per quali valori di [a] 12 l equazione [a] 12 [x] 12 = [1] 12 + [9] 12 [x] 12 ha soluzione. Soluzione. Portiamo [9] 12 [x] 12 a sinistra dell uguale ottenendo da cui ([a] 12 [9] 12 )[x] 12 = [1] 12 [a + 3] 12 [x] 12 = [1] 12. I valori ammessi di [a] 12 sono quindi quelli per cui [a + 3] 12 ha l inverso moltiplicativo. Dato che gli elementi di Z 12 con inverso moltiplicativo sono [1] 12, [5] 12, [7] 12, [11] 12 i valori ammessi di [a] 12 sono [10] 12, [2] 12, [4] 12, [8] 12.

16 16 3 APPLICAZIONI DELLE CONGRUENZE 3 Applicazioni delle congruenze Nella sezione precedente abbiamo introdotto il concetto di congruenza; in questa sezione vediamo alcune applicazioni. Per molte di queste applicazioni la proprietà fondamentale da ricordare è la seguente: se abbiamo un espressione contenente solo somme e prodotti e siamo interessati a sapere quanto vale modulo n (cioè a sapere il resto del risultato dell espressione modulo n), allora tutti i conti e tutti i risultati intermedi li posso fare modulo n (cioè prendendo il resto della divisione per n ad ogni passaggio). Ad esempio, per calcolare mod 7 possiamo scrivere: [ ] 7 = [9999] 3 7 = [3] 3 7 = [27] 7 = [6] 7. In seguito vedremo altri esempi simili di utilizzo di questa proprietà. 3.1 Criteri di divisibilità in base 10 Il nostro modo usuale di rappresentare i numeri è detto in base 10 in quanto utilizza 10 cifre. Sappiamo inoltre che le cifre in base dieci di un numero rappresentano, da destra a sinistra le unità, decine, centinaia, migliaia, etc. Ad esempio abbiamo: 7241 = Nel seguito scriveremo (d k 1 d k 2 d 0 ) 10 per indicare un intero positivo di k cifre decimali (si assume quindi 0 d i 9, e d k 1 0); tale numero rappresenta il valore: d k 1 10 k 1 + d k 2 10 k d d 0. (20) Teorema 6 Il numero (d k 1 d k 2 d 0 ) 10 è divisibile per 3 se e solo se la somma delle cifre è divisibile per 3, cioè se abbiamo d k 1 + d k d 0 mod 3 = 0. Dimostrazione: Osserviamo che per ogni i > 0 abbiamo [10 i ] 3 = ([10] 3 ) i = ([1] 3 ) i = [1] 3 ; in altre parole 10 i diviso 3 da sempre resto 1. Di conseguenza abbiamo: [d k 1 10 k d d 0 ] 3 = [d k 1 ] 3 [10 k 1 ] [d 1 ] 3 [10] 3 + [d 0 ] 3 = [d k 1 ] 3 [1] [d 1 ] 3 [1] 3 + [d 0 ] 3 = [d k 1 ] [d 1 ] 3 + [d 0 ] 3 = [d k d 1 + d 0 ] 3 Osservazione 6 Notiamo che la dimostrazione dice qualcosa di più del teorema. Infatti la dimostrazione ci dice che [d k d 1 + d 0 ] 3 è uguale al resto della divisione fra (d k 1 d k 2 d 0 ) 10 e 3. Ad esempio, se dividiamo 1234 per 3 otteniamo come resto mod 3 = 1. Questa osservazione si applica a tutti i criteri di divisibilità descritti in questa sezione. Teorema 7 Il numero (d k 1 d k 2 d 0 ) 10 è divisibile per 9 se e solo se la somma delle cifre è divisibile per 9, cioè se abbiamo d k 1 + d k d 0 mod 9 = 0. Dimostrazione: La dimostrazione è identica a quella del teorema precedente in quanto abbiamo [10 i ] 9 = ([10] 9 ) i = ([1] 9 ) i = [1] 9. Teorema 8 Il numero (d k 1 d k 2 d 0 ) 10 è divisibile per 2 se e solo se l ultima cifra è pari, cioè d 0 mod 2 = 0.

17 3.1 Criteri di divisibilità in base Dimostrazione: Dato che per i > 0 si ha [10 i ] 2 = ([10] 2 ) i = ([0] 2 ) i = [0] 2, abbiamo [d k 1 10 k d d 0 ] 2 = [d k 1 ] 2 [10 k 1 ] [d 1 ] 2 [10] 2 + [d 0 ] 2 = [d k 1 ] 2 [0] 2 + [d k 2 ] 2 [0] [d 1 ] 2 [0] 2 + [d 0 ] 2 = [d 0 ] 2 Teorema 9 Il numero (d k 1 d k 2 d 0 ) 10 è divisibile per 4 se e solo se il numero formato dalle ultime due cifre è divisibile per 4, cioè (d 1 d 0 ) 10 mod 4 = 0. Dimostrazione: Abbiamo che per i > 1 si ha [10 i ] 4 = ([10] 4 ) i = ([0] 4 ) i = [0] 4. possiamo scrivere: di conseguenza [d k 1 10 k d d 0 ] 4 = [d k 1 ] 4 [10 k 1 ] [d 1 ] 4 [10] 4 + [d 0 ] 4 = [d k 1 ] 4 [0] 4 + [d k 2 ] 4 [0] [d 1 ] 4 [10] 4 + [d 0 ] 4 = [d d 0 ] 4 Osservazione 7 Il Teorema 9 può essere generalizzato. Abbiamo infatti che per i j, 10 i è multiplo di 2 j cioè [10 i ] 2 j = [0] 2 j. Di conseguenza abbiamo che (d k 1 d k 2 d 0 ) 10 è divisibile per 2 j se il numero formato dalle sue ultime j cifre lo è. In altre parole (d k 1 d k 2 d 0 ) 10 è divisibile per 2 j se (d j 1 d j 2 d 0 ) 10 lo è. Ad esempio è divisibile per 16 in quanto 0160 (cioè 160) è divisibile per 16. Teorema 10 Il numero (d k 1 d k 2 d 0 ) 10 è divisibile per 5 se e solo se l ultima cifra è 0 o 5. Dimostrazione: Dato che per i > 0 si ha [10 i ] 5 = ([10] 5 ) i = ([0] 5 ) i = [0] 5, abbiamo [d k 1 10 k d d 0 ] 5 = [d k 1 ] 5 [10 k 1 ] [d 1 ] 5 [10] 5 + [d 0 ] 5 = [d k 1 ] 5 [0] 5 + [d k 2 ] 5 [0] [d 1 ] 5 [0] 5 + [d 0 ] 5 = [d 0 ] 5 Teorema 11 Il numero (d k 1 d k 2 d 0 ) 10 è divisibile per 11 se e solo se d 0 d 1 + d 2 d 3 + ( 1) k 1 d k 1 è divisibile per 11. Dimostrazione: Osserviamo che , quindi [10] i 11 = [ 1]i 11. [10] i 11 = [1] 11, mentre per i dispari [10] i 11 = [ 1] 11. Abbiamo quindi: Di conseguenza per i pari [(d k 1 d k 2 d 0 ) 10 ] 11 = [d 0 ] 11 + [d 1 ] 11 [10] 11 + [d 2 ] 11 [10 2 ] [d k 1 ] 11 [10 k 1 ] 11 = [d 0 ] 11 + [d 1 ] 11 [ 1] 11 + [d 2 ] 11 [1] [d k 1 ] 11 [( 1) k 1 ] 11 = [d 0 ] 11 + [ d 1 ] 11 + [d 2 ] [( 1) k 1 d k 1 ] 11 = [d 0 d 1 + d ( 1) k 1 d k 1 ] 11 Ad esempio abbiamo che 231 è divisibile per 11 in quanto = 0. Analogamente 5390 è multiplo di 11 in quanto = 11. Concludiamo questa sezione osservando che è possibile ottenere altri criteri di divisibilità componendo quelli che abbiamo appena visto. Ad esempio, utilizzando i Teoremi 6 e 8 otteniamo che un numero è divisibile per 6 se e solo se la somma delle sue cifre è multipla di 3 e l ultima cifra è pari. Analogamente abbiamo che un numero è divisibile per 45 se e solo se la somma delle sue cifre è multipla di 9 e l ultima cifra è 0 o 5.

18 = [d k d 1 + d 0 ] APPLICAZIONI DELLE CONGRUENZE Esercizio 13 Dimostrare che per un qualsiasi numero di 2 cifre (d 1 d 0 ) 10 si ha che (d 1 d 0 ) 10 (d 0 d 1 ) 10 è un multiplo di 9. Ad esempio = 18, = 45, etc. Soluzione. Abbiamo (d 1 d 0 ) 10 (d 0 d 1 ) 10 = d d 0 d d 1 = 9(d 1 d 0 ). 3.2 Rappresentazione di un numero in base b 10 È possibile rappresentare gli interi utilizzando una qualsiasi base b > 1. Lavorare in base b vuol dire rappresentare i numeri utilizzando b cifre che compongono i numeri con uno schema analogo alla formula (20). Ad esempio, se lavoriamo in base 3, abbiamo a disposizione le cifre 0, 1, 2, ed il numero in base 3 (20010) 3 rappresenta il valore: (21011) 3 = = = 104. Gli interi 1,..., 10 scritti in base 3 risultano quindi: 1 = (1) 3, 2 = (2) 3, 3 = (10) 3, 4 = (11) 3, 5 = (12) 3, 6 = (20) 3, 7 = (21) 3, 8 = (22) 3, 9 = (100) 3, 10 = (101) 3. In generale, se lavoriamo in base b abbiamo b cifre i cui valori sono 0, 1, 2,..., b 1. Un generico numero in base b di k cifre lo scriviamo nella forma (d k 1 d k 2 d 0 ) b e rappresenta il valore (21) d k 1 b k 1 + d k 2 b k d 1 b + d 0. (22) Se b 10, per rappresentare le cifre di valore maggiore di 9 si usano solitamente le lettere dell alfabeto. Ad esempio in informatica si usa a volte la base 16 e si usano le lettere A, B,..., F per rappresentare le cifre di valore da 10 a 15. Il numero in base 16 (2A3E) 16 denota quindi il valore (2A3E) 16 = = Un altra base che gli informatici devono conoscere è naturalmente la base 2 che è quella utilizzata internamente dagli elaboratori elettronici. Lavorando in base 2 abbiamo a disposizione solo le due cifre 0 e 1. Il numero in base 2 ( ) 2 rappresenta quindi il valore ( ) 2 = = Osserviamo che per rappresentare sono necessarie 4 cifre se lavoriamo in base 16, e 14 cifre se lavoriamo in base 2. Questo è vero in generale: maggiore è la base, minore il numero di cifre necessarie per rappresentare un dato numero. È importante sottolineare che i criteri di divisibilità che abbiamo visto nella Sezione 3.1 per i numeri rappresentati in base 10 non sono validi se lavoriamo in una base diversa. Ad esempio, le formule (21) mostrano che lavorando in base 3 non è vero che un numero è pari se e solo se la sua ultima cifra è pari. È possibile però stabilire dei criteri di divisibilità anche per numeri in base diversa da 10 come mostrato dai seguenti esercizi. Esercizio 14 Dimostrare che il numero (d k 1 d k 2 d 0 ) 3 è divisibile per due se e solo se la somma delle cifre è pari, cioè se abbiamo d k 1 + d k d 0 mod 2 = 0. Soluzione. Osserviamo che per ogni i > 0 abbiamo [3 i ] 2 = ([1] 2 ) i = [1] 2 ; in altre parole 3 i diviso 2 da sempre resto 1. Di conseguenza abbiamo: [d k 1 3 k d d 0 ] 2 = [d k 1 ] 2 [3 k 1 ] [d 1 ] 2 [3] 2 + [d 0 ] 2 = [d k 1 ] 2 [1] [d 1 ] 2 [1] 2 + [d 0 ] 2

19 3.3 Algoritmo veloce per l elevamento a potenza 19 Osservazione 8 Questo esercizio può essere generalizzato nel seguente modo: se c divide b 1 il numero in base b (d k 1 d k 2 d 0 ) b è divisibile per c se e solo se d k 1 + d k d 0 mod c = 0. (Provare per esercizio a dimostrare questa affermazione). Ad esempio, il numero in base sedici (d k 1 d k 2 d 0 ) 16 è divisibile per 5 se e solo se d k 1 + d k d 0 mod 5 = 0. Quindi abbiamo che (3B1) 16 è divisibile per 5 in quanto = 15 (infatti (3B1) 16 = (780) 10 ). Esercizio 15 Dimostrare che numero (d k 1 d k 2 d 0 ) 6 è divisibile per 7 se e solo se d 0 d 1 + d 2 d 3 + ( 1) k 1 d k 1 è divisibile per 7. Soluzione. Si osserva che [6 i ] 7 = [ 1] i 7 e si procede come nella dimostrazione del Teorema 11. Esercizio 16 Dimostrare che numero (d k 1 d k 2 d 0 ) 12 è divisibile per 9 se e solo se d d 0 è divisibile per 9. Ad esempio (316) 12 è divisibile per 9 in quanto = 18. Soluzione. Si osserva che per i 2 si ha [12 i ] 9 = [0] 9 e si procede come nella dimostrazione del Teorema Algoritmo veloce per l elevamento a potenza Supponiamo di voler calcolare [3] Invece di eseguire 63 moltiplicazioni [3] 11 [3] 11 [3] 11, osservando che 64 = 2 6 possiamo cavarcela con solo 6 moltiplicazioni. Abbiamo infatti: [3] 2 11 = [9] 11, [3] 4 11 = [9]2 11 = [4] 11, [3] 8 11 = [4]2 11 = [5] 11, [3] = [5]2 11 = [3] 11, [3] = [3]2 11 = [9] 11, [3] = [9]2 11 = [4] 11. Il risparmio è notevole: vale quindi la pena di cercare di generalizzare questo metodo anche nei casi in cui l esponente non è una potenza di 2. Supponiamo ad esempio di voler calcolare [7] Come primo passo scriviamo l esponente 41 in forma binaria (vedere Sezione 3.2), abbiamo: 41 = (101001) 2. Questo vuol dire che: 41 = Per le proprietà delle potenze abbiamo: Di conseguenza, per calcolare [7] [7] = [7] = [7] [7] [7] dobbiamo semplicemente calcolare [7]25 11, [7]23 11, e [7]20 11 e moltiplicare questi tre valori tra loro. Ma noi abbiamo appena visto che mediante elevamenti al quadrato successivi possiamo calcolare velocemente [7] 11 elevato ad una potenza di 2. Abbiamo infatti: [7] 2 11 = [5] 11, [7] = [5] 2 11 = [3] 11, [7] = [3] 2 11 = [9] 11, [7] = [9] 2 11 = [4] 11, [7] = [4] 2 11 = [5] 11, e possiamo quindi concludere che [7] = [7] [7] [7] = [5] 11 [9] 11 [7] 11 = [7] 11. Esempio 14 Supponiamo di dover calcolare [5] Abbiamo quindi Calcoliamo [5] 2i 19 per i = 1, 2,..., 10: 1234 = ( ) 2 = , [5] = [5] [5] [5] [5] [5] [5] 2 19 = [6] 19, [5] = [ 2] 19, [5] = [4] 19, [5] = [ 3] 19, [5] = [9] 19 [5] = [5] 19, [5] = [6] 19 [5] = [ 2] 19, [5] = [4] 19, [5] = [ 3] 19

20 20 3 APPLICAZIONI DELLE CONGRUENZE Abbiamo allora [5] = [5] [5] [5] [5] [5] = [ 3] 19 [6] 19 [5] 19 [ 3] 19 [6] 19 = [5] 19. Riassumendo: per calcolare la potenza [t] m n scriviamo m in binario m = (d k 1 d 1 d 0 ) 2, calcoliamo le potenze [t] 2 n, [t] 22 n, [t] 23 n,... [t] 2k 1 n, e moltiplichiamo tra loro tutte le potenze [t] 2i n corrispondenti alle cifre d i uguali a 1 (ricordiamo che ogni d i può essere solamente 0 o 1). Osserviamo che calcolare [t] m n utilizzando questo algoritmo eseguiamo k 1 moltiplicazioni per calcolare le potenze [t] 2i n per i = 1,..., k 1 e al più altre k 1 moltiplicazioni per calcolare [t] m n. Si può dimostrare che k 1 = log 2 m, quindi diciamo che il numero moltiplicazioni effettuate con questo algoritmo è al più 2 log 2 m. Esempio 15 Per calcolare [3] in Z 1000 scriviamo 99 in binario 99 = ( ) 2 = Calcoliamo poi (mediante elevamenti al quadrato successivi) Abbiamo quindi [3] = [9] 1000, [3] = [81] 1000, [3] = [561] 1000, [3] = [721] 1000, [3] = [841] 1000, [3] = [281] [3] = [3] [3] [3] [3] 1000 = [281] 1000 [841] 1000 [9] 1000 [3] 1000 = [667] Il teorema cinese del resto Dati quattro interi a, b, x, y con a e b positivi, supponiamo di voler trovare tutti gli interi n tali che n x è un multiplo di a e n y è un multiplo di b. Ricordando la Definizione 3, abbiamo che questo problema è equivalente a trovare tutti gli interi n che soddisfano al sistema { n a x (23) n b y. Ad esempio, risolvere il sistema { n 5 1 n 3 2 vuol dire trovare tutti gli interi n tali che n 1 è multiplo di 5 e, contemporaneamente, n 2 è multiplo di 3. Una soluzione del sistema è il valore n = 11 in quanto 11 1 = 5 2 e n 2 = 3 3. Un sistema del tipo (23) è detto sistema di congruenze e, come vedremo, ha un ruolo importante in matematica discreta. Enunciamo ora il teorema cinese del resto che fornisce un meccanismo standard per risolvere un sistema di congruenze del tipo (23). Il primo passo verso la soluzione consiste nel trasformare il sistema (23) nella forma { n = at + x n = bs + y e osservare che le due nuove equazioni implicano che deve essere at + x = bs + y. Il sistema (23) è quindi risolubile se e solo se l equazione diofantea at bs = y x (nelle incognite s, t) ammette soluzione. Di conseguenza, il sistema è risolubile se e solo se d = MCD(a, b) divide y x. Se tale condizione è verificata calcoliamo, utilizzando l algoritmo di Euclide esteso, una coppia di valori t 0, s 0 tali che at 0 bs 0 = y x. La soluzione generale dell equazione diofantea è data allora da t = t 0 + λ(b/d), s = s 0 + λ(a/d).

21 3.4 Il teorema cinese del resto 21 Sostituendo l espressione di t nella relazione n = at + x otteniamo n = at 0 + x + λ(ab/d). In altre parole, se il sistema (23) è risolubile allora le soluzione formano una classe di resto modulo (ab)/d. Ricordando che (ab)/d è uguale a mcm(a, b) (il minimo comune multiplo fra a e b, vedere Sezione 1.4), possiamo riassumere queste considerazioni nel seguente teorema. Teorema 12 (Teorema cinese del resto). Il sistema di congruenze (23) è risolubile se e solo se MCD(a, b) divide y x. Se il sistema è risolubile, le soluzioni formano una classe di resto modulo mcm(a, b). Una prima applicazione del teorema è il fatto che per risolvere un sistema del tipo (23) è sufficiente verificare che sia risolubile e trovare una singola soluzione n 0. Infatti il teorema cinese del resto ci dice che tutte le altre soluzioni sono gli interi nella stessa classe di resto di n 0 modulo mcm(a, b). Esempio 16 Supponiamo di dover risolvere il sistema: { n 22 5 n Abbiamo che MCD(22, 12) divide 1 5 = 4 quindi il sistema è risolubile. Dobbiamo risolvere l equazione 22s 12t = 4, cioè 11s 6t = 2. Una soluzione è s 0 = 2, t 0 = 4. Dalla questa soluzione ottengo n 0 = = 49. Dato che sappiamo che le soluzioni formano una classe di resto modulo mcm(12, 22) = 132 abbiamo che la soluzione del nostro sistema è [49] 132, o, equivalentemente, n Esempio 17 Supponiamo di voler trovare gli interi n che soddisfano alle 3 congruenze: n 7 3 n 4 1 n 5 3. Cominciamo risolvendo un sistema con le prime due congruenze: { n 7 3 n 4 1. Deve essere 7s + 3 = 4t + 1, cioè 7s 4t = 2. Una soluzione è data da s 0 = 2, t 0 = 4 di conseguenza una soluzione del sistema (25) è data da n 0 = 17. Il teorema cinese del resto ci dice che la soluzione del sistema (25) è una classe di resto modulo 28, quindi gli interi n che soddisfano la (25) sono quelli della forma n Abbiamo allora che gli interi che soddisfano alle tre congruenze (24) sono quelli che soddisfano al sistema { n (26) n 5 3. Quest ultimo sistema è equivalente all equazione diofantea 28x + 17 = 5y + 3, cioè 28x 5y = 14. Con l algoritmo di Euclide si trova = 1, quindi una soluzione dell equazione diofantea è x 0 = 28, y 0 = 154. Abbiamo quindi che una soluzione del sistema (25) è n 0 = = 767. Per il teorema cinese del resto la soluzione di (26), e quindi anche del sistema iniziale (24), è data da n , cioè n Esercizio 17 Dire per quali valori del parametro a Z è possibile trovare un intero n tale che il sistema { n a n 105 2a 1. ammette soluzioni. Si trovino tutte le soluzioni per a = 68. Soluzione. Il sistema è equivalente all equazione diofantea 21 + a + 180x = 2a y, cioè 180x 105y = a 22. L equazione è risolubile quando a 22 è un multiplo di 15 = MCD(105, 180), cioè [a] 15 = [22] 15 = [7] 15. Per a = 68 l equazione diofantea diventa 180x 105y = 90 che è equivalente a 12x 7y = 6. Quest ultima ha come soluzioni x = 18 7k, y = 30 12k per i quali si ottiene n = k (o equivalentemente n ). (24) (25)

22 22 3 APPLICAZIONI DELLE CONGRUENZE Esercizio 18 I lavoratori di una fabbrica, oltre al riposo domenicale hanno diritto ad un riposo extra ogni 19 giorni contati a partire dal primo gennaio (quindi il primo riposo extra sarà il primo gennaio, il secondo il 20 gennaio e così via). Sapendo che nel 2008 il primo gennaio è giovedì si dica quante volte nel corso del 2008 il riposo extra e il riposo domenicale capiteranno in due giorni consecutivi. Soluzione. Numeriamo i giorni dell anno da 1 a 366 (il 2008 è bisestile). Dato che il primo gennaio è giovedì, le domeniche cadono nei giorni n 7 4 con 1 n 366. Il riposo extra cade invece nei giorni n Si hanno due giorni di riposo consecutivo quando il riposo extra cade di sabato o di lunedì. Dobbiamo quindi contare il numero di soluzioni dei due sistemi { n 19 1 n 7 3 { n 19 1 n 7 5 con il vincolo 1 n 366. Il primo sistema è equivalente a n e quindi in [1, 366] ha le soluzioni 115 e 248. Il secondo sistema è equivalente a n e quindi in [1, 366] ha le soluzioni 96, 229, e 362. In totale quindi il numero di volte che si hanno 2 giorni di riposo consecutivi è Condivisione di segreti Il Presidente Hush ha un problema. Ha una cassaforte piena di materiale segreto ed è necessario che, in sua assenza, i suoi tre più importanti collaboratori ci possano accedere. Hush però non si fida totalmente di loro e quindi non vuole dare la combinazione completa ad ognuno di loro; l ideale sarebbe un meccanismo che permetta di aprire la cassaforte solamente se due di essi collaborano per aprirla. Idealmente vorremmo quindi dividere la combinazione in 3 pezzi tali che solamente l unione di due qualsiasi di questi pezzi permetta di ricostruire la combinazione. Il consigliere per la sicurezza nazionale, Compostezza Ribe, ha studiato Matematica Discreta all universtà e fornisce a Hush la soluzione. Siano a, b, c tre numeri primi tra loro con a < b < c. Ad esempio prendiamo a = 31, b = 32, c = 33. Sia n = ab (n = 992 nel nostro esempio); la combinazione x deve essere un numero compreso fra 0 e n 1. Nel nostro caso prendiamo x = 711. Il presidente Hush comunica al primo collaboratore x mod a, al secondo x mod b e al terzo x mod c (i valori a, b, c ed n invece sono noti a tutti). Nel nostro esempio quindi, al primo collaboratore viene comunicato 711 mod 31 = 29, al secondo 711 mod 32 = 7, al terzo 711 mod 33 = 18. È evidente che un singolo collaboratore non possiede sufficiente informazioni per aprire la cassaforte. Supponiamo invece che il secondo e il terzo collaboratore decidano congiuntamente di aprire la cassaforte. Per ricostruire la combinazione non devono fare altro che risolvere il sistema di congruenze { x 32 7 x la cui soluzione generale è x = k. In questo insieme di soluzioni l unica compresa fra 0 e 992 è 711 che quindi sarà la combinazione della cassaforte. Osserviamo che questo metodo può essere generalizzato al caso in cui ci sono n collaboratori e si vuole che k di essi siano necessari per la ricostruzione di un segreto (con 1 k n). Esercizio 19 Costruire uno schema di condivisione di segreti che permetta a cinque partecipanti A, B, C, D, E di condividere un segreto. Lo schema deve essere tale che il segreto deve poter essere ricostruito solo mediante la collaborazione di A e di altri 2 partecipanti. Il modulo assegnato ad ogni partecipante deve essere maggiore o uguale a 40. Soluzione. È sufficiente scegliere 7 numeri primi tra loro maggiori o uguali a 40. Possiamo prendere 41, 42, 43, 47, 49, 51, 53. Il segreto è identificato da una chiave k compresa fra 0 e = (usiamo quindi il prodotto di 5 moduli). Ad A viene assegnato il valore k mod = Ai partecipanti B, C, D, E vengono assegnati rispettivamente i valori k modulo 47, 49, 51, 53. È immediato verificare che senza la collaborazione di A il segreto non può essere ricostruito in quanto gli altri partecipanti insieme possono ottenere solo k mod = Utilizzando invece i 3 moduli conosciuti da A e altri due moduli qualsiasi è sempre possibile ricostruire il segreto.

23 23 4 Il teorema di Eulero In questo capitolo verrà illustrato un importante teorema dimostrato per la prima volta dal matematico svizzero Leonhard Euler (Eulero) nel Questo teorema è solo uno dei tanti contributi dati alla fisica e alla matematica da questo prolifico studioso le cui opere complete assommano a più di 60 volumi. La particolarità di questo teorema è che, a distanza di 200 anni dalla sua prima enunciazione, è stato recentemente utilizzato per la costruzione di algoritmi di crittografia. 4.1 La funzione ϕ di Eulero La funzione ϕ di Eulero associa ad ogni intero n 1 il numero di interi compresi tra 0 e n 1 che sono coprimi con n. Formalmente abbiamo: Ad esempio, alcuni valori della funzione ϕ sono dati da ϕ(n) = def {0 b < n MCD(b, n) = 1}. (27) ϕ(6) = 2 in quanto {0 b < 6 MCD(b, 6) = 1} = {1, 5}; ϕ(7) = 6 in quanto {0 b < 7 MCD(b, 7) = 1} = {1, 2, 3, 4, 5, 6}; ϕ(8) = 4 in quanto {0 b < 8 MCD(b, 8) = 1} = {1, 3, 5, 7}; ϕ(1) = 1 in quanto {0 b < 1 MCD(b, 1) = 1} = {0}; Dato n, possiamo sempre ottenere ϕ(n) calcolando MCD(i, n) per i = 0, 1,..., n 1 e contando quante volte il MCD è uguale a 1. Questo procedimento chiaramente non è molto veloce. Nel caso in cui conosciamo la fattorizzazione di n è possibile calcolare molti più velocemente ϕ(n) utilizzando il seguente risultato. Teorema 13 Se n = p k con p primo k 1, allora ϕ(n) = p k p k 1. Se MCD(m, n) = 1 allora ϕ(mn) = ϕ(m)ϕ(n). La prima parte del teorema ci dice, ad esempio, che ϕ(32) = = 16. La seconda parte del teorema ci dice, ad esempio, che ϕ(35) = ϕ(5)ϕ(7). Dato che per la prima parte del teorema ϕ(5) = = 4 e ϕ(7) = = 6 abbiamo che ϕ(35) = 24. Esempio 18 Per calcolare ϕ(12) osserviamo che per la seconda parte del Teorema 13 abbiamo ϕ(12) = ϕ(3)ϕ(4). Per la prima parte del teorema abbiamo ϕ(3) = = 2, e ϕ(4) = = 2. Di conseguenza ϕ(12) = 4. Per verificare la correttezza di questo risultato osserviamo che {0 b < 12 MCD(b, 12) = 1} = {1, 5, 7, 11}. Esempio 19 Per calcolare ϕ(30) osserviamo che per la seconda parte del Teorema 13 abbiamo ϕ(30) = ϕ(5)ϕ(6). Sempre per la seconda parte del teorema abbiamo ϕ(6) = ϕ(3)ϕ(2). Di conseguenza ϕ(30) = ϕ(5)ϕ(3)ϕ(2) = = 8. Per verificare la correttezza di questo risultato osserviamo che {0 b < 30 MCD(b, 30) = 1} = {1, 7, 11, 13, 17, 19, 23, 29}. Gli esempi precedenti mostrano che il Teorema 13 permette di calcolare la funzione ϕ per ogni intero n del quale conosciamo la fattorizzazione. Infatti, se la scomposizione in fattori primi di n è n = p k 1 1 pk 2 2 pk h h

24 24 4 IL TEOREMA DI EULERO allora, applicando più volte la seconda parte del teorema abbiamo ϕ(n) = ϕ(p k 1 1 pk 2 2 pk 3 3 pk h h ) = ϕ(p k 1 1 )ϕ(pk 2 2 pk 3 3 pk h h ) = ϕ(p k 1 1 )ϕ(pk 2 2 )ϕ(pk 3 3 pk h h ) = ϕ(p k 1 1 )ϕ(pk 2 2 )ϕ(pk 3 3 ) ϕ(pk h h ); e per la prima parte del teorema abbiamo ( ) ( ϕ(n) = p k 1 1 pk p k 2 2 pk ) ( p k 3 3 pk ) ( p k h h ) pk h 1 h. Ad esempio abbiamo ϕ( ) = ϕ(3)ϕ(2 10 )ϕ(5 10 ) = 2( )( ) = Il teorema di Eulero Per n > 1 indichiamo con Z n il sottoinsiene di Z n formato delle classi di resto [i] n tali che MCD(i, n) = 1. Formalmente definiamo Z n = def {[i] n Z n MCD(i, n) = 1}. Per i risultati delle sezione precedente abbiamo che Z n contiene esattamente ϕ(n) elementi. Inoltre, per i risultati della Sezione 2.2 sappiamo che Z n contiene tutte e sole le classi di resto di Z n che hanno l inverso moltiplicativo. Esempio 20 Abbiamo ϕ(24) = 8 e Z 24 = {[1] 24, [5] 24, [7] 24, [11] 24, [13] 24, [17] 24, [19] 24, [23] 24 }. Teorema 14 (Teorema di Eulero). Sia n > 1. Per ogni a Z n abbiamo a ϕ(n) = [1] n. Esempio 21 Come primo esempio di applicazione del teorema di Eulero consideriamo il caso n = 10. Abbiamo ϕ(10) = 4, quindi il teorema ci dice che le classi [1] 10, [3] 10, [7] 10, [9] 10 (che sono gli elementi di Z 10) elevate alla potenza 4 danno la classe [1] 10. Che [1] 4 10 = [1] 10 è immediato. Negli altri casi abbiamo: [3] 2 10 = [9] 10 [3] 3 10 = [7] 10 [3] 4 10 = [1] 10 [7] 2 10 = [9] 10 [7] 3 10 = [3] 10 [7] 4 10 = [1] 10 [9] 2 10 = [1] 10 [9] 3 10 = [9] 10 [9] 4 10 = [1] 10. Esempio 22 Come secondo esempio di applicazione del teorema di Eulero consideriamo il caso n = 7. Abbiamo ϕ(7) = 6, quindi il teorema ci dice che gli elementi di Z 7 elevati alla potenza 6 danno la classe [1] 7. Che [1] 6 7 = [1] 7 è immediato. Negli altri casi abbiamo: [2] 2 7 = [4] 7 [2] 3 7 = [1] 7 [2] 4 7 = [2] 7 [2] 5 7 = [4] 7 [2] 6 7 = [1] 7 [3] 2 7 = [2] 7 [3] 3 7 = [6] 7 [3] 4 7 = [4] 7 [3] 5 7 = [5] 7 [3] 6 7 = [1] 7 [4] 2 7 = [2] 7 [4] 3 7 = [1] 7 [4] 4 7 = [4] 7 [4] 5 7 = [2] 7 [4] 6 7 = [1] 7 [5] 2 7 = [4] 7 [5] 3 7 = [6] 7 [5] 4 7 = [2] 7 [5] 5 7 = [3] 7 [5] 6 7 = [1] 7 [6] 2 7 = [1] 7 [6] 3 7 = [6] 7 [6] 4 7 = [1] 7 [6] 5 7 = [6] 7 [6] 6 7 = [1] 7.

25 4.2 Il teorema di Eulero 25 Osservazione 9 Una prima conseguenza del teorema di Eulero è che se a Z n l inverso moltiplicativo di a modulo n è b = a ϕ(n) 1. Infatti a b = aa ϕ(n) 1 = a ϕ(n) = [1] n. Abbiamo quindi una seconda strada (in aggiunta all algoritmo di Euclide esteso) per calcolare l inverso moltiplicativo di un elemento di Z n. Esercizio 20 Calcolare l inverso di [3] 19 in Z 19. Soluzione. Dato che ϕ(19) = 18 abbiamo che l inverso di [3] 19 è [3] Abbiamo: [3] 2 19 = [9] 19, [3] 4 19 = [9] 2 19 = [5] 19, [3] 8 19 = [5] 2 19 = [6] 19, [3] = [6] 2 19 = [17] 19. Di conseguenza l inverso di [3] 19 è dato da [3] = [3] 19[17] 19 = [13] 19. Osservazione 10 Un altra conseguenza del fatto che a ϕ(n) = [1] n è che se MCD(a, n) = 1 lavorando in Z n gli esponenti di a possono essere ridotti modulo ϕ(n). Ad esempio, se si deve calcolare a modulo n con con > ϕ(n) possiamo dividere per ϕ(n) ottenendo un quoziente q ed un resto r. Abbiamo allora a = a qϕ(n)+r = (a ϕ(n) ) q a r = ([1] n ) q a r = a r. In altre parole non è mai necessario eseguire elevamenti a potenze maggiori di ϕ(n). Esercizio 21 Calcolare [7] in Z 100. Soluzione. Abbiamo ϕ(100) = 40. La divisione fra e 40 da resto 10 (applicando i criteri di divisibilità sappiamo infatti che è multiplo di 40). Abbiamo quindi [7] = [7] = [49] 100. Dato un elemento a Z n si definisce l ordine di a come il più piccolo intero positivo t 1 per cui si ha a t = [1] n. Ad esempio, nel caso n = 7, la tabella delle potenze appena vista ci dice che l ordine di [2] 7 è 3, l ordine di [3] 7 è 6, l ordine di [4] 7 è 3, l ordine di [5] 7 è 6, e l ordine di [6] 7 è 2. Infine abbiamo che l ordine di [1] 7 è 1 (in generale abbiamo che per ogni n > 1, l ordine di [1] n è 1). Osserviamo che l ordine degli elementi di Z 7 sono tutti divisori di 6. Il seguente corollario del teorema di Eulero ci dice che questo non è un caso. Corollario 2 Per ogni a Z n l ordine di a è un divisore di ϕ(n). Dimostrazione: Sia t l ordine di a, cioè il più piccolo intero positivo per cui a t = [1] n. Osserviamo che per il teorema di Eulero a ϕ(n) = [1] n quindi sicuramente t ϕ(n). Vogliamo mostrare che t divide ϕ(n). Eseguiamo la divisione euclidea tra ϕ(n) e t, ottenendo un quoziente q ed un resto r. Abbiamo allora che ϕ(n) = tq + r, con 0 r < t. (28) Il nostro obbiettivo è dimostrare che r = 0. Dalla (28), ricordando che a t = [1] n, segue che a ϕ(n) = a tq+r = a tq a r = (a t ) q a r = ([1] n ) q a r = a r. Abbiamo quindi che a r = a ϕ(n) = [1] n. Ricordiamo che t è il più piccolo intero positivo per cui a t = [1] n. Se fosse r > 0 avremmo trovato un intero positivo più piccolo di t per cui a r = [1] n. Ma questo è impossibile, quindi deve essere r = 0 e di conseguenza t divide ϕ(n).

26 26 4 IL TEOREMA DI EULERO Esempio 23 Consideriamo Z 15 = {[1] 15, [2] 15, [4] 15, [7] 15, [8] 15, [11] 15, [13] 15, [14] 15 }. Abbiamo ϕ(15) = 8, quindi gli ordini degli elementi di Z 15 possono essere 1,2,4, oppure 8. La classe [1] 15 ha ordine 1. Per quanto riguarda le altre classi abbiamo: [2] 2 15 = [4] 15 [2] 3 15 = [8] 15 [2] 4 15 = [1] 15 [4] 2 15 = [1] 15 [7] 2 15 = [4] 15 [7] 3 15 = [13] 15 [7] 4 15 = [1] 15 [8] 2 15 = [4] 15 [8] 3 15 = [2] 15 [8] 4 15 = [1] 15 [11] 2 15 = [1] 15 [13] 2 15 = [4] 15 [7] 3 15 = [13] 15 [13] 4 15 = [1] 15 [14] 2 15 = [1] 15 Quindi le classi [2] 15, [7] 15, [8] 15, e [13] 15 hanno ordine 4, mentre le classi [4] 15, [11] 15, e [14] 15 hanno ordine 2. Nell Esempio 23 abbiamo che ϕ(15) = 8 ma in Z 15 non esistono elementi di ordine 8. In generale, abbiamo che se d divide ϕ(n) non è detto che esista un elemento di Z n che abbia ordine d. Osserviamo anche che la classe [1] n ha ordine 1, ma tutte le altri classi hanno ordine maggiore di 1 (in quanto [a] 1 n = [a] n ). Esercizio 22 Calcolare l ordine di [2] 11 in Z 11. Soluzione. Dato che ϕ(11) = 10 l ordine può essere 2, 5, o 10. Abbiamo: [2] 2 11 = [4] 11, [2] 3 11 = [8] 11, [2] 4 11 = [5] 11, [2] 5 11 = [10] 11 quindi l ordine di [2] 11 è maggiore di 5. Possiamo concludere, senza ulteriori calcoli, che l ordine di [2] 11 è 10. Esercizio 23 Calcolare l ordine di [11] 32 in Z 32. Soluzione. Dato che ϕ(32) = 16 l ordine può essere 2, 4, 8, o 16. Osserviamo che per calcolare l ordine di [11] 32 non è necessario calcolare [11] i 32 per i = 1, 2, 3,..., ma possiamo limitarci agli esponenti della forma 2 j. Abbiamo [11] 2 32 = [25] 32, [11] 4 32 = ([11] 2 32) 2 = [25] 2 32 = [17] 32, [11] 8 32 = ([11] 4 32) 2 = [17] 2 32 = [1] 32 quindi l ordine di [11] 32 è 8. Esercizio 24 Calcolare l ordine di [11] 13 in Z 13. Soluzione. Dato che ϕ(13) = 12 l ordine può essere 2, 3, 4, 6, o 12. Abbiamo [11] 2 13 = [4] 13, [11] 3 13 = [5] 13, [11] 4 13 = ([11] 2 13) 2 = [4] 2 13 = [3] 13, [11] 6 13 = ([11] 3 13) 2 = [5] 2 13 = [12] 13 quindi l ordine di [11] 13 è 12. Esercizio 25 Calcolare l ordine di [3] 100 in Z 100. Soluzione. Dato che ϕ(100) = (4 2)(25 5) = 40 l ordine può essere 1, 2, 4, 8, oppure uno di questi quattro numeri moltiplicati per 5. Abbiamo Proviamo ora con gli ordini 5, 10, 20, 40: [3] = [9] 100, [3] = [81] 100, [3] = [81] = [61] 100. [3] = [81] 100 [3] 100 = [43] 100, [3] = [43] = [49] 100, [3] = [49] = [1] 100. quindi l ordine di [3] 100 è 20.

27 4.3 Il problema del logaritmo discreto Il problema del logaritmo discreto Ricordiamo che dato a Z n scriviamo a 1 per indicare l inverso moltiplicativo di a, cioè la classe di resto b tale che ab = [1] n. Ad esempio [3] 1 7 = [5] 7 in quanto [3] 7 [5] 7 = [1] 7. Inoltre definiamo per ogni a Z n a 0 = [1] n. È immediato verificare che con queste definizioni valgono le usuali proprietà delle potenze a n a m = a n+m, (a n ) m = a nm per una qualsiasi coppia di interi n, m Z e per ogni a Z n. Si ricorda che nei numeri reali indichiamo con log a b l esponente che bisogna dare ad a per avere b, cioè se k = log a b allora a k = b. Avendo definito le potenze in Z n è naturale introdurre il concetto di logaritmo anche in questo insieme. Esempio 24 Sia a Z n, calcolare il logaritmo in base a di [1] n vuol dire trovare quali sono gli esponenti k Z tale che a k = [1] n. Noi sappiamo che se t è l ordine di a, allora t è il più piccolo intero positivo per cui a t = [1] n. Ma t non è l unico intero per cui a t = [1] n, è immediato verificare che per ogni λ Z abbiamo a λt = [1] n. Di conseguenza l insieme degli esponenti k per cui a k = [1] n coincide con l insieme dei multipli di t, cioè k t 0, dove t è l ordine di a. Esercizio 26 Calcolare per quali interi k si ha [3] k 100 = [1] 100. Soluzione. Nell Esercizio 25 abbiamo visto che l ordine di [3] 100 è 20. La soluzione è quindi k 20 0, cioè k =..., 40, 20, 0, 20, 40, 60,.... Consideriamo ora il caso più generale nel quale vogliamo calcolare per quali esponenti k si ha a k = b con a, b Z n. Un metodo generale per risolvere questo problema è illustrato nel seguente esempio. Esempio 25 Vogliamo calcolare per quali k si ha [3] k 11 = [4] 11. Calcoliamo le potenze di [3] 11 fino ad ottenere [1] 11 : [3] 2 11 = [9] 11, [3] 3 11 = [5] 11, [3] 4 11 = [4] 11, [3] 5 11 = [1] 11. (29) Abbiamo quindi che [3] 4 11 = [4] 11, inoltre l ordine di [3] 11 è uguale a 5. Di conseguenza abbiamo per ogni λ Z [3] 4+5λ 11 = [3] 4 11 ([3] 5 11) λ = [4] 11 [1] λ 11 = [1] 11. La soluzione al nostro problema sono quindi gli interi k della forma k = 4 + 5λ, cioè k 5 4. Osserviamo che se avessimo dovuto trovare per quali k si ha [3] k 11 = [2] 11, il problema non avrebbe avuto soluzione. Dalla (29) possiamo infatti vedere che le potenze di [3] 11 sono solamente le classi [3] 11, [9] 11, [5] 11, [4] 11, [1] 11 che si ripetono ciclicamente. Riassumendo, per calcolare per quali k Z si ha [a] k n = [b] n dobbiamo determinare l ordine t di [a] n e dobbiamo verificare se esiste un k 0 tale che [a] k 0 n = [b] n. Se tale k 0 esiste la soluzione è k t k 0, se invece k 0 non esiste (cioè calcolando le potenze successive di [a] n si ottiene [1] n senza aver ottenuto [b] n ) allora il problema non ha soluzione (cioè non esistono k tali che [a] k n = [b] n ). Nel caso particolare in cui [b] n = [1] n allora è sufficiente calcolare l ordine t e la soluzione è k t 0 (quindi se [b] n = [1] n la soluzione esiste sempre). Esercizio 27 Calcolare per quali interi k si ha [5] k 19 = [16] 19. Soluzione. Calcoliamo le potenze successive di [5] 19 fino a quando non otteniamo [1] 19 [5] 2 19 = [6] 19, [5] 3 19 = [11] 19, [5] 4 19 = [17] 19, [5] 5 19 = [9] 19, [5] 6 19 = [7] 19, [5] 7 19 = [16] 19, [5] 8 19 = [4] 19, [5] 9 19 = [1] 19. La soluzione è quindi k 9 7, cioè k =..., 11, 2, 7, 16,....

28 28 4 IL TEOREMA DI EULERO Esercizio 28 Calcolare per quali interi k si ha [7] k 90 = [1] 90. Soluzione. Per risolvere il problema dobbiamo solamente determinare l ordine di [7] 90. Essendo ϕ(90) = ϕ(2)ϕ(9)ϕ(5) = 24, l ordine di [7] 90 può essere 2, 3, 4, 6, 8, 12, o 24. Abbiamo [7] 2 90 = [49] 90, [7] 3 90 = [73] 90, [7] 4 90 = [61] 90, [7] 6 90 = [7]2 90 [7]4 90 = [19] 90, [7] 8 90 = [31] 90, [7] = [7]4 90 [7]8 90 = [1] 90. La soluzione è quindi k Esercizio 29 Calcolare per quali a Z 17 il problema [4] k 17 = [a] 17[3] 17 ammette soluzioni. Soluzione. Calcoliamo le potenze di [4] 17 [4] 1 17 = [4] 17, [4] 2 17 = [16] 17, [4] 3 17 = [13] 17, [4] 4 17 = [1] 17. Il problema ammette soluzione quando [a] 17 [3] 17 {[4] 17, [16] 17, [13] 17, [1] 17 }. Dato che [3] 1 17 = [6] 17, abbiamo che i valori ammissibili di [a] 17 sono quattro e precisamente Esercizio 30 Dire per quali interi k si ha [a] 17 = [6] 17 [4] 17 = [7] 17, [a] 17 = [6] 17 [16] 17 = [11] 17, [a] 17 = [6] 17 [13] 17 = [10] 17, [a] 17 = [6] 17 [1] 17 = [6] k k. (30) Soluzione. La (30) è equivalente a [777 k ] 13 = [35] 13 [18 k ] 13 che a sua volte equivale a [10] k 13 = [9] 13 [5] k 13. Per trasformare questa equazione in un problema di logaritmo discreto moltiplichiamo entrambi i membri per [5] k 13. [10] k 13[5] k 13 = [9] 13. Abbiamo [5] k 13 = ([5] 1 13 )k = [8] k 13. La nostra equazione diventa quindi [10] k 13[8] k 13 = [9] 13. Essendo [10] k 13 [8]k 13 = [80]k 13 = [2]k 13, l equazione (30) risulta quindi equivalente a [2] k 13 = [9] 13, che risolta con le tecniche viste negli esercizi precedenti porta alla soluzione k Esercizio 31 Dire per quali interi k si ha 7 10 k k. (31) Soluzione. L equazione (31) è equivalente a [7] 11 [ 1] k 11 = [8] 11 [9] k 11 Moltiplicando entrambi i membri per [8] 1 11 = [7] 11 otteniamo [7] 11 [7] 11 [ 1] k 11 = [9] k 11,

29 4.3 Il problema del logaritmo discreto 29 da cui [5] 11 [ 1] k 11 = [9] k 11. Moltiplicando entrambi i membri per [ 1] k 11 otteniamo [5] 11 = [9] k 11[ 1] k 11 = [9]k 11([ 1] 1 11 )k = [9] k 11[ 1] k 11 = ([9] 11 [ 1] 11 ) k = [ 9] k 11 = [2] k 11. Dobbiamo quindi risolvere il problema Abbiamo: [2] k 11 = [5] 11. [2] 2 11 = [4] 11, [2] 3 11 = [8] 11, [2] 4 11 = [5] 11, [2] 5 11 = [10] 11. Abbiamo allora che [2] 4 11 = [5] 11 e che l ordine di [2] 11 è 10 (deve essere un divisore di ϕ(11) = 10 e abbiamo appena visto che non è ne 2 ne 5). La soluzione del problema (31) è quindi k Esercizio 32 Risolvere il sistema { 6 2n n (32) Soluzione. Per risolvere il sistema dobbiamo portare ognuna delle due equazioni nella forma n a x per poi applicare il teorema cinese del resto (vedi Sezione 3.4). Dato che [6 2n ] 13 = [6 2 ] n 13 = [10]n 13, la prima equazione diventa [10] n 13 = [3] 13. (33) Abbiamo: [10] 2 13 = [9] 13, [10] 3 13 = [12] 13, [10] 4 13 = [3] 13, [10] 5 13 = [4] 13, [10] 6 13 = [1] 13. La soluzione della (33) è quindi n 6 4. La seconda equazione del sistema si può riscrivere come [5] 16 [n] 16 = [ 3] 16. Dato che [5] 1 16 = [13] 16, moltiplicando entrambi i termini per [13] 16 otteniamo [n] 16 = [13] 16 [ 3] 16 = [ 39] 16 = [9] 16. La seconda equazione del sistema (32) ha quindi come soluzione n 16 9, e di conseguenza il sistema (32) è equivalente a { n 6 4 n Questo sistema però non è risolubile in quanto MCD(6, 16) = 2 non divide 4 9 = 5. Possiamo concludere allora che il sistema iniziale (32) non ammette nessuna soluzione intera. Esercizio 33 Risolvere il sistema { 2 103n n 17 3 n. (34) Soluzione. Come nell esercizio precedente per risolvere il sistema dobbiamo portare ognuna delle due equazioni nella forma n a x per poi applicare il teorema cinese del resto (vedi Sezione 3.4). La prima equazione la scriviamo nella forma: ([2] ) n = [4] 11. (35) Dato che ϕ(11) = 10 abbiamo che [2] = [1] 11, quindi [2] = [2] [2] 3 11 = [1] 11 [2] 3 11 = [8] 11 e l equazione (35) diventa [8] n 11 = [4] 11.

30 30 4 IL TEOREMA DI EULERO Abbiamo [8] 2 11 = [9] 11, [8] 3 11 = [6] 11, [8] 4 11 = [4] 11, [8] 5 11 = [10] 11 quindi, ragionando come nell Esercizio 31, otteniamo che la soluzione della prima equazione del sistema (34) è n Per quanto riguarda la seconda equazione del sistema (34) essa è equivalente a [2] n 17 = [3] n 17. Moltiplichiamo entrambi i membri per [2] n 17 e otteniamo da cui Essendo [2] 1 17 = [9] 17 abbiamo [2] n 17[2] n 17 = [3]n 17[2] n 17 [1] 17 = ([3] 17 [2] 1 17 )n. [1] 17 = [3 9] n 17 = [10] n 17. Per risolvere questa equazione è sufficiente calcolare l ordine di [10] 17 che dovrà essere un divisore di ϕ(17) = 16. Abbiamo [10] 2 17 = [15] 17, [10] 4 17 = [4] 17, [10] 8 17 = [16] 17, [10] = [1] 17. La soluzione della seconda equazione del sistema (34) è quindi n Abbiamo allora che il sistema (34) è equivalente al nuovo sistema { n 10 4 n Il teorema cinese del resto ci dice che questo sistema è risolubile in quanto MCD(10, 16) = 2 divide 4 0 = 4. Inoltre sappiamo che la soluzione sarà una classe di resto modulo mcm(10, 16) = 80. Svolgendo i conti come nella Sezione 3.4 si ottiene n Esercizio 34 Dire per quali valori del parametro a il sistema { 8 k k 21 a. (36) ammette soluzione. Soluzione. Per risolvere la prima equazione del sistema dobbiamo calcolare le potenze di [8] 13. Abbiamo: [8] 2 13 = [12] 13, [8] 3 13 = [5] 13, [8] 4 13 = [1] 13. La soluzione della prima equazione della (36) è quindi k 4 2. Per risolvere la seconda equazione calcoliamo le potenze di [5] 21. Abbiamo: [5] 2 21 = [4] 21, [5] 3 21 = [20] 21, [5] 4 21 = [16] 21 [5] 5 21 = [17] 21, [5] 6 21 = [1] 21. La soluzione della seconda equazione della (36) è quindi della forma k 6 b dove b dipende dalla classe di a (ad esempio se a [4] 21, b = 2, se a [20] 21, b = 3, ecc.). Affinché l equazione k 6 b abbia soluzioni in comune con k 4 2 è necessario che MCD(6, 4) = 2 divida b 2 e quindi b deve essere pari. Quindi affinché il sistema (36) sia risolubile deve essere a {[4] 21 [16] 21 [1] 21 }.

31 31 5 Applicazioni alla crittografia La crittografia è quella disciplina a cavallo fra la matematica e l informatica che studia le tecniche per trasmettere informazioni in maniera segreta. L obiettivo è quello di assicurarsi che solo il legittimo destinatario possa ricostruire il significato del messaggio e che esso sia incomprensibile per una persona non autorizzata che eventualmente intercetti il messaggio. È chiaro quindi che le tecniche di crittografia sono utilizzate tutte le volte in cui informazioni riservate devono essere trasmesse attraverso canali non sicuri. Fino ad una trentina di anni fa, la crittografia era usata prevalentemente in ambito diplomatico e militare. Con l avvento dell informatica e delle reti di calcolatori la crittografia è entrata a fare parte della vita di ogni giorno di ognuno di noi. Ogni volta che inseriamo una password, usiamo comandi come ssh, o visitiamo una pagina la cui URL inizia per https, stiamo facendo uso della crittografia. 5.1 Il cifrario di Augusto In questa sezione mostriamo un semplice algoritmo di crittografia che pare risalga all epoca dell imperatore Augusto. Supponiamo ad esempio di voler trasmettere il messaggio ALESSANDRIA. Come prima cosa trasformiamo il messaggio in una sequenza di numeri secondo la trasformazione spazio 0, A 1, B 2,..., Z 26. Scegliamo poi una chiave ad esempio la parola CIAO. Scriviamo poi la codifica numerica del messaggio e sotto di essa la codifica numerica della chiave ripetuta più volte in modo da ottenere tanti valori quanti quelli presenti nel messaggio. Nel nostro esempio, dato che la codifica numerica di CIAO è [3, 9, 1, 15], abbiamo A L E S S A N D R I A Il messaggio cifrato è costituito dalla somma modulo 27 dei valori contenuti nelle ultime due righe della tabella. Nel nostro caso il messaggio cifrato è quindi [4, 21, 6, 7, 22, 10, 15, 19, 21, 18, 2]. Nel seguito indicheremo questo algoritmo di crittografia con l espressione cifrario di Augusto, con chiave CIAO. Tale espressione mette in risalto che l algoritmo è composto da un metodo generale (il metodo di Augusto di sommare modulo 27) e dalla chiave CIAO. Evidentemente per avere una maggiore sicurezza è consigliabile tenere segreti sia il metodo utilizzato che la chiave. Non sempre però questo è possibile: ad esempio non è ragionevole pensare che un sito web di commercio elettronico possa mantenere un metodo diverso di crittografia per ogni possibile utente. Nelle applicazioni informatiche capita spesso quindi che il metodo usato è noto a tutti e che la segretezza dei messaggi è affidata completamente alla segretezza della chiave. Questo fatto ha comportato lo sviluppo di sofisticate tecniche di crittografia al fine di rendere sicure le trasmissioni. 5.2 Algoritmi efficienti e inefficienti Un concetto fondamentale per la moderna crittografia è la distinzione fra algoritmi efficienti e inefficienti. Nel seguito daremo solo una definizione informale ma sufficiente per illustrare il funzionamento dei protocolli di crittografia che saranno visti nel seguito. Definizione 4 Un algoritmo si dice efficiente se risolve un problema eseguendo un numero di operazioni aritmetiche che è al massimo proporzionale al logaritmo, o a una potenza del logaritmo, di uno dei dati di input. Per operazioni aritmetiche si intendono somma, sottrazione e prodotto sia tra interi che tra classi di resto e il calcolo della divisione euclidea tra due interi. Come detto la definizione data è informale e quindi non è immediato afferrarne il significato. Per chiarirsi le idee è opportuno studiare con attenzione i seguenti esempi.

32 32 5 APPLICAZIONI ALLA CRITTOGRAFIA Esempio 26 Consideriamo il problema di calcolare [t] m n. I dati di input sono quindi i tre numeri interi n, t, e m. L algoritmo veloce di elevamento a potenza visto nella Sezione 3.3 è un algoritmo efficiente in quanto esegue 2 log 2 m operazioni. Il numero di operazioni è quindi proporzionale, con costante di proporzionalità 2, al logaritmo di uno dei dati di input (l esponente m). Esempio 27 L algoritmo tradizionale per il calcolo di [t] m n che esegue m 1 moltiplicazioni [t] n [t] n [t] n, non è efficiente. Infatti il numero di operazioni non è proporzionale ad una potenza di log m: per m grande infatti la quantità m 1 è molto più grande di una qualsiasi potenza di log 2 m (questo lo avete imparato ad analisi). Osservazione 11 Per capire il motivo per cui introduciamo la distinzione fra algoritmi efficienti e inefficienti consideriamo il problema di calcolare [7] Supponiamo di avere a disposizione un computer 50 in grado di eseguire il prodotto fra due elementi in Z in un milionesimo di secondo. Se utilizziamo l algoritmo veloce dobbiamo eseguire 2 log = 60 log operazioni che richiedono in totale circa 0.2 millesimi di secondo. L algoritmo tradizionale esegue moltiplicazioni impiegando secondi che corrispondono a miliardi di anni (ricordiamo che si stima che l universo esista da solo 14 miliardi di anni). La conclusione da tenere a mente è che un algoritmo efficiente è in grado di risolvere in pochi secondi problemi che sono in pratica irrisolubili con un algoritmo non efficiente. Esempio 28 L algoritmo di Euclide esteso è un algoritmo efficiente in quanto è possibile dimostrare che esegue al più 2 log max(a, b) passi. In altre parole, la sequenza dei resti è lunga al più 2 log max(a, b): entro tale numero di passi si ottiene sicuramente un resto 0. Dato che ad ogni passo vengono eseguite 5 operazioni (una per calcolare quoziente e resto, e quattro per aggiornare i coefficienti s e t), il numero di operazioni complessive è proporzionale al logaritmo del più grande tra a e b. Esempio 29 L algoritmo che stabilisce se un intero n è primo provando a dividerlo per tutti i numeri fino a n non è efficiente in quanto se n è primo esegue un numero di operazioni (divisioni) pari appunto a n (e voi avete studiato al corso di analisi che per n grande n è molto più grande di una qualsiasi potenza di log 2 n). Notiamo che se n è, ad esempio, multiplo di 3 riusciamo ad accorgerci che non è primo con poche operazioni: a noi però interessa il numero di operazioni svolte nei casi più difficili (o sfortunati). Se per alcuni input l algoritmo esegue un numero di operazioni molto elevato lo classifichiamo inefficiente anche se per altri input l algoritmo è molto veloce. Osservazione 12 L algoritmo considerato nell esempio precedente non è l unico algoritmo esistente per stabilire se un intero è primo o composto. Nella Sezione 6.4 vedremo il test di primalità di Miller- Rabin che è un algoritmo efficiente per questo problema in quanto esegue un numero di operazioni proporzionale a log 2 n. Strettamente correlato al problema di stabilire se un numero n è primo, c è il problema di calcolare la fattorizzazione di n. Questo secondo problema è più difficile del primo: infatti se di un numero riusciamo a calcolare la fattorizzazione è immediato poi stabilire se esso è primo oppure no. È importante sottolineare che non vale il viceversa: il sapere che un numero non è primo non ci aiuta a determinare la sua scomposizione in fattori. Osservazione 13 Attualmente non si conoscono algoritmi efficienti per il calcolo della fattorizzazione di un numero. Di conseguenza ci troviamo nella seguente situazione: dato un numero di 200 cifre decimali utilizzando il test di primalità di Miller-Rabin (vedi Sezione 6.4) un moderno PC può stabilire in pochi secondi se esso è primo oppure no; ma lo stesso PC impiegherebbe decine di anni per calcolarne la fattorizzazione. Come vedremo, il fatto che sia facile stabilire se un numero è primo e che sia difficile calcolare la fattorizzazione è alla base di diversi risultati di crittografia. Il motivo per cui ci interessa la distinzione fra algoritmi efficienti e inefficienti è che nel seguito mostreremo come costruire dei sistemi di crittografia nei quali i buoni possono codificare e decodificare i messaggi utilizzando algoritmi efficienti mentre i cattivi per decodificare un messaggio non diretto a loro si trovano a dover risolvere un problema per il quale non si conoscono algoritmi efficienti. Un esempio di questi metodi è dato dal protocollo di Diffie-Hellman descritto nella prossima sezione.

33 5.3 Il protocollo di Diffie-Hellman Il protocollo di Diffie-Hellman Consideriamo ancora il problema di un sito web di commercio elettronico che deve gestire transazioni riservate con migliaia di utenti ogni giorno. Possiamo pensare che tutte le transazioni siano crittografate con lo stesso metodo, ma è chiaramente necessario che per ogni utente venga utilizzata una chiave diversa che deve essere nota solamente all utente e al sito stesso. Abbiamo però il problema di come il sito e il singolo utente si possano scambiare una chiave segreta. Lo scambio infatti deve avvenire in tempi brevi e utilizzando Internet che non è un canale di comunicazione sicuro nel senso che i dati trasmessi posso essere intercettati e letti durante il tragitto. Nel 1976 Diffie e Hellman hanno proposto un metodo che permette a due persone (o computer) di concordare una chiave segreta utilizzando un canale non sicuro. Il metodo di Diffie e Hellman sfrutta il fatto che non si conoscono algoritmi efficienti per il calcolo del logaritmo discreto (vedere Sezione 4.3). Indichiamo con Alice e Bobo due persone che desiderano concordare una chiave segreta. Come prima cosa Alice calcola un primo p e un elemento g Z p di ordine p 1 e li comunica a Bobo (si dimostra che un tale elemento g esiste sempre; il suo calcolo in maniera efficiente richiede un po di Teoria dei Numeri avanzata). Successivamente Alice sceglie un intero positivo a < p 1 e comunica a Bobo il valore k a = (g a mod p). Analogamente Bobo sceglie un intero positivo b < p 1 e comunica ad Alice il valore k b = (g b mod p). A questo punto Alice e Bobo usano il valore k = (g ab mod p) come chiave segreta. Osserviamo che Alice non conosce b ma può calcolare k con la formula k = (kb a mod p). Analogamente Bobo non conosce a ma può calcolare k con la formula k = (ka b mod p). Notiamo che Alice e Bobo devono solamente calcolare degli elevamenti a potenza e possono farlo con l algoritmo veloce descritto nella Sezione 3.3. Supponiamo ora che Carlo abbia intercettato tutte le comunicazioni fra Alice e Bobo. Carlo conosce i valori g, p, k a, e k b, ma non è in grado di calcolare direttamente k. Per calcolare k Carlo ha bisogno di ricavare a o b ma per fare questo deve risolvere un problema di logaritmo discreto in Z p cioè calcolare qual è l intero a tale che g a = k a. Attualmente non si conoscono algoritmi efficienti per il calcolo del logaritmo discreto in Z p: se p ha un centinaio di cifre tale calcolo richiede anni di tempo macchina. Alice e Bobo possono quindi tranquillamente scambiarsi messaggi riservati utilizzando la chiave k. Per maggiore sicurezza nelle applicazioni informatiche le chiavi segrete possono essere cambiate più volte durante una sessione di comunicazione (il procedimento è gestito dai computer e l utente non si accorge di nulla). Osservazione 14 Abbiamo visto che il protocollo di Diffie-Hellman è sicuro quando il primo p è grande. È lecito chiedersi come possa fare Alice a generare un numero primo con, ad esempio, duecento cifre. Il procedimento è il seguente: si prende un numero n qualsiasi di 200 cifre, e si applica un test di primalità per verificare se è primo. Se n è primo abbiamo finito, altrimenti applichiamo il test di primalità a n + 1, n + 2, etc. fino a quando non troviamo un numero primo. Questo procedimento è efficiente in quanto 1) esistono algoritmi efficienti per stabilire se un numero è primo (vedere Osservazione 12) e 2) la distanza fra due primi successivi è generalmente piccola : più precisamente partendo dall intero n il procedimento che abbiamo visto trova un numero primo dopo log 2 n tentativi. Concludiamo osservando che nessuno hai mai dimostrato che non possono esistere algoritmi efficienti per il calcolo del logaritmo discreto. Rimane quindi aperta la possibilità che un giorno qualcuno trovi algoritmo efficiente per questo problema: in tal caso il protocollo di Diffie-Hellman non potrebbe più essere considerato sicuro. 5.4 Il protocollo RSA Il protocollo RSA è stato introdotto nel 1977 dai ricercatori del MIT Ronald Rivest, Adi Shamir e Leonard Adleman ed è attualmente il più famoso sistema di crittografia a chiave pubblica (vedremo nel seguito il significato di questa espressione). La sicurezza del protocollo RSA è basata sostanzialmente sul fatto che non si conoscono algoritmi efficienti per il problema della fattorizzazione.

34 34 5 APPLICAZIONI ALLA CRITTOGRAFIA Supponiamo che Alice voglia ricevere dei messaggi da Bobo ma che tutte le loro comunicazioni possano essere intercettate. Per garantire la riservatezza dei messaggi diretti a lei Alice può utilizzare il protocollo RSA che consiste nei seguenti passi: 1. Alice genera due primi grandi p e q, ne calcola il prodotto n e calcola ϕ(n) = (p 1)(q 1). 2. Alice sceglie un intero e, con 1 < e < ϕ(n) tale che MCD(e, ϕ(n)) = Alice rende pubblica (diciamo sul proprio sito web) la coppia di interi (n, e) che costituisce la sua chiave pubblica. 4. Utilizzando l algoritmo di Euclide esteso Alice calcola d tale che de ϕ(n) 1 (quindi d è l inverso moltiplicativo di e modulo ϕ(n)). La coppia (n, d) costituisce la chiave privata di Alice. Per spedire messaggi ad Alice, Bobo per prima cosa recupera la chiave pubblica (n, e) e trasforma il suo messaggio in una serie di interi m 1, m 2,..., m k con 0 m i < n per i = 1,..., k (i messaggi possono essere trasformati in numeri utilizzando lo schema descritto nella Sezione 5.1 eventualmente considerando blocchi di lettere invece che lettere singole). Successivamente, per i = 1,..., k, Bobo calcola c i = (m e i mod n) e spedisce la sequenza di interi c 1, c 2,..., c k. Alice decodifica il messaggio calcolando i valori x i = (c d i mod n) per i = 1,..., k. Esempio 30 Supponiamo che Alice scelga p = 31, q = 43 da cui deriva n = 1333 e ϕ(n) = Alice sceglie poi e = 17: la chiave pubblica risulterà quindi essere la coppia (n = 1333, e = 17). Successivamente, utilizzando l algoritmo di Euclide esteso, Alice calcola l inverso moltiplicativo di 17 modulo 1260 che risulta essere d = 593. La chiave privata di Alice sarà quindi la coppia (n = 1333, d = 593). Supponiamo che Bobo debba inviare il valore 456. Usando la chiave pubblica di Alice, Bobo calcola mod 1333 = 880. Il valore 880 è il messaggio crittografato che viene trasmesso da Bobo ad Alice. Alice usa la sua chiave privata e calcola mod 1333 = 456 riottenendo così il valore originale. Il seguente teorema dimostra che il meccanismo di decodifica ricostruisce esattamente il messaggio originale. Teorema 15 Siano n, e, d definiti come sopra. Sia m tale che 0 m < n e siano Allora si ha x = m. c = m e mod n, x = c d mod n. Dimostrazione: Per semplicità mostriamo il teorema solo nel caso in cui MCD(m, n) = 1. Per prima cosa osserviamo che essendo m e x entrambi compresi fra 0 e n 1 è sufficiente dimostrare che x n m. Abbiamo x n c d n (m e ) d n m ed basta quindi dimostrare che m ed n m. Dato che MCD(m, n) = 1, l Osservazione 10 ci dice che l esponente di m può essere ridotto modulo ϕ(n). Essendo ed ϕ(n) 1 possiamo concludere che m ed n m ed mod ϕ(n) n m 1 n m. Osservazione 15 È importante notare che una volta che Alice ha reso pubblica la chiave (n, e) chiunque, non solo Bobo, può inviare messaggi cifrati ad Alice. L espressione sistemi di crittografia a chiave pubblica indica il fatto che la segretezza dipende da due chiavi: una pubblica e una privata. Il fatto che sia possibile divulgare la chiave pubblica fa sì che Alice possa ricevere messaggi privati da chiunque senza che ci sia stato in precedenza uno scambio di informazioni. Si confronti questa situazione con il cifrario di Augusto (Sezione 5.1) nel quale esiste solamente una chiave privata (la parola CIAO nell esempio) che deve essere tenuta segreta e deve essere stata stabilita in anticipo tra i partecipanti.

35 5.4 Il protocollo RSA 35 Il Teorema 15 mostra che il protocollo RSA funziona nel senso che Alice è in grado di ricostruire i messaggi diretti a lei. Ma chi ci assicura che il sistema sia sicuro, cioè che solo Alice sia in grado di ricostruire questi messaggi? Supponiamo che Carlo intercetti la sequenza di interi c 1,..., c k spediti da Bobo ad Alice. Dato che la chiave pubblica (n, e) di Alice è disponibile, Carlo può in teoria ricostruire il messaggio procedendo come segue: 1) calcola la fattorizzazione di n ottenendo così i due primi p e q, 2) calcola ϕ(n) = (p 1)(q 1), 3) calcola d applicando l algoritmo di Euclide esteso alla coppia (e, ϕ(n)). A questo punto Carlo può ottenere il messaggio originale m 1,..., m k procedendo nello stesso modo di Alice, cioè elevando alla d modulo n. Il procedimento appena descritto non può però essere utilizzato in pratica da Carlo perché non sono noti algoritmi efficienti per il calcolo della fattorizzazione di un numero. Se p e q (e di conseguenza n) sono grandi, ad esempio hanno centinaia di cifre, utilizzando questo metodo Carlo impiegherebbe decide di anni per decodificare i messaggi diretti ad Alice 1. Osserviamo che possiamo utilizzare numeri primi p e q grandi in quanto le operazioni di codifica e decodifica consistono semplicemente in elevamenti a potenza modulo n che, anche quando l esponente è grande, possono essere eseguiti velocemente utilizzando l algoritmo descritto nella Sezione 3.3. Per trovare due primi grandi con in quali generare le chiavi pubblica e privata Alice può utilizzare il procedimento descritto nell Osservazione 14. Osservazione 16 Ripetiamo il concetto già espresso nel caso del protocollo di Diffie-Hellman: nessuno ha dimostrato che non possono esistere algoritmi efficienti per il problema della fattorizzazione. Se un giorno venisse scoperto un algoritmo efficiente il metodo RSA non potrebbe essere più considerato sicuro 2. È importante sottolineare che anche se si riuscisse a dimostrare che con i computer attuali fattorizzare un numero di un centinaio di cifre richiede necessariamente decine di anni, il metodo RSA non potrebbe ancora essere considerato completamente sicuro. In linea di principio infatti Carlo potrebbe riuscire a decodificare i messaggi diretti ad Alice usando un metodo che non richieda di fattorizzare n. Ad esempio, se si trovasse un algoritmo per calcolare ϕ(n) senza conoscere p e q allora si potrebbero decifrare i messaggi senza bisogno di fattorizzare n. È quindi più esatto dire che la sicurezza del sistema RSA è basata sul fatto che, allo stato attuale delle conoscenze, non sono noti algoritmi efficienti per ricavare m 1,..., m k dati c 1,..., c k e la chiave pubblica (n, e). Concludiamo osservando che il metodo descritto garantisce la riservatezza solamente dei messaggi indirizzati ad Alice. Se Alice volesse mandare un messaggio riservato a Bobo, sarà lui a dover calcolare e pubblicare una propria chiave pubblica. Bobo manterrà anche la corrispondente chiave segreta che dovrà usare per decodificare i messaggi diretti a lui. Esercizio 35 In un sistema di crittografia RSA, la chiave pubblica consiste nel modulo n = e dell esponente di codifica e = 593. Inoltre scoprite che la somma dei due primi che costituiscono il modulo è Calcolare l esponente di decodifica d. Soluzione. Indicando con p e q i due primi che compongono il modulo abbiamo p + q = Essendo ϕ(n) = (p 1)(q 1) = n (p + q) + 1 abbiamo ϕ(n) = = L esponente di decodifica si ottiene applicando l algoritmo di Euclide esteso alla coppia ( , 593) che fornisce il risultato d = Sottolineiamo che anche un algoritmo molto inefficiente è in grado di fattorizzare in pochi secondi un numero piccolo. Per questo motivo, con i numeri utilizzati nell Esempio 30 il metodo RSA non è sicuro. 2 In realtà algoritmi efficienti per il problema della fattorizzazione (e del logaritmo discreto) esistono già, ma richiedono l uso di computer quantistici. Computer quantistici sono già stati realizzati, ma per problemi tecnici hanno una quantità di memoria molto limitata. Attualmente il numero più grande che si è riusciti a fattorizzare con un computer quantistico è 15, ma le cose potrebbero cambiare in pochi anni....

36 36 6 RADICI QUADRATE MODULO N E TEST DI MILLER-RABIN 6 Radici quadrate modulo n e test di Miller-Rabin Sappiamo che ogni numero reale a > 0 possiede esattamente due radici quadrate ± a. In questo capitolo studieremo le proprietà delle radici quadrate in Z n. Vedremo poi una inaspettata applicazione delle radici quadrate in Z n in crittografia. Tratteremo infine il test di primalità di Miller Rabin che è anch esso basato sulle proprietà delle radici quadrate in Z n. 6.1 Radici quadrate modulo p Cominciamo il nostro studio, dal caso particolare degli insiemi Z p con p primo. Teorema 16 Se p è un numero primo l equazione x 2 = [a] p in Z p ha al più due soluzioni x = [u] p e x = [ u] p = [p u] p. Dimostrazione: Supponiamo che esistano due interi u, v tali che u 2 a mod p e v 2 a mod p. Abbiamo allora u 2 v 2 p 0 da cui (u v)(u + v) p 0. Dovendo essere (u v)(u + v) un multiplo di p, abbiamo che p deve dividere (u v) oppure (u + v). Nel primo caso abbiamo u p v, nel secondo u p v. Abbiamo quindi che ogni [a] p ammette al massimo due radici quadrate. Ci chiediamo ora quanti elementi di Z p abbiano almeno una radice quadrata. Consideriamo come esempio il caso p = 7. Abbiamo che i quadrati degli elementi di Z 7 sono [0] 2 7 = [0] 7, [1] 2 7 = [1] 7, [2] 2 7 = [4] 7, [3] 2 7 = [2] 7, [4] 2 7 = [2] 7, [5] 2 7 = [4] 7, e [6] 2 7 = [1] 7. Di conseguenza, abbiamo che [0] 7 ha una sola radice quadrata, [1] 7, [4] 7, [5] 7 hanno due radici quadrate, mentre [2] 7, [3] 7, [6] 7 non hanno radici quadrate. Estendendo questo ragionamento ad un primo p qualsiasi osserviamo che la classe [0] p ha un unica radice quadrata, (p 1)/2 classi hanno esattamente due radici quadrate (ricordare il Teorema 16) e di conseguenza (p 1)/2 classi non hanno radici quadrate. Il seguente teorema ci permette di stabilire facilmente quali elementi di Z p hanno una radice quadrata. Teorema 17 Sia p un primo dispari. Se [a] p [0] p, [a] p ha due radici quadrate se e solo se a p mod p. Dimostrazione: Supponiamo che sia [a] p = [b] 2 p per un qualche [b] p Z p. Allora abbiamo [a] p 1 2 p = [b] p 1 p = [1] p per il teorema di Eulero. Viceversa sia a tale che a p mod p. Come abbiamo accennato nella Sezione 5.3, se p è primo esiste un elemento g Z p che ha ordine p 1 e che quindi ha la proprietà che ogni elemento di Z p è una potenza di g. In particolare avremo che [a] p = g k per un qualche intero k, con 1 k < p 1. Dall ipotesi su [a] p segue che [1] p = [a] p 1 2 p = g k p 1 2. Dato che [g] p ha ordine p 1 abbiamo che k p 1 2 deve essere un multiplo di p 1 e di conseguenza k deve essere pari. Abbiamo allora che [a] p ha come radici quadrate ±g (k/2) (ricordiamo infatti che [a] p = g k ). Esempio 31 Fissiamo p = 11. Abbiamo 5 (p 1)/2 = 5 5 = Essendo , [5] 11 ha due radici quadrate (che sono infatti ±[4] 11 ). Abbiamo invece 2 5 = 32. Dato che concludiamo che [2] 11 non ha radici quadrate.

37 6.1 Radici quadrate modulo p 37 Osservazione 17 Sia [c] p = [a] p 1 2 p mod p. Se [a] p non ha radici quadrate sappiamo che [c] p [1] p. Mostriamo che in questo caso deve essere [c] p = [ 1] p. Infatti, dato che [c] 2 p = [a] p 1 p = [1] p (per il Teorema di Eulero) abbiamo che [c] p è una radice quadrata di [1] p. Per il Teorema 16 [1] p ha come uniche radici quadrate ±[1] p e dato che [c] p [1] p deve essere [c] p = [ 1] p. Supponiamo ora che, grazie al Teorema 17, abbiamo stabilito che una certa classe [a] p ha radici quadrate. Come possiamo fare per trovarle? Nel caso in cui il primo p sia tale che p 4 3 il calcolo è sorprendentemente facile. Lemma 4 Se p 4 3 e [a] p ha radici quadrate, allora tali radici sono ±[a] p+1 4 p. Dimostrazione: Osserviamo che se p 4 3 risulta che p + 1 è un multiplo di 4 e di conseguenza l esponente p+1 4 è un intero. Inoltre ricordiamo che [a] p ha radici quadrate solo se a p 1 2 p 1. Abbiamo (±[a] p+1 4 p ) 2 = [a] p+1 2 p = [a] p p = [a] p [a] p 1 2 p = [a] p. Di conseguenza ±[a] p+1 4 p sono entrambe radici quadrate di [a] p. Esempio 32 Fissiamo p = 19 e a = [11] 19. Dato che [11] 9 19 = [1] 19 abbiamo che [11] 19 ha radici quadrate. Applichiamo il Lemma 4 e calcoliamo [11] (19+1)/4 19 = [11] 5 19 = [7] 19. Le radici sono quindi ±[7] 19 cioè [7] 19 e [12] 19. Nel caso in cui sia p 4 1 il calcolo delle radici quadrate è più complicato. Mostriamo ora il procedimento di calcolo omettendo la dimostrazione della correttezza (non dimostriamo cioè che il valore ottenuto è sempre la radice quadrata cercata). Dato [a] p Z p tale che [a] (p 1)/2 p = [1] p, con p 4 1, per trovare una radice quadrata di [a] p se può procedere come segue. 1. Osserviamo che p 1 è sicuramente pari. Raccogliamo tutte le potenze di 2 presenti in p 1, scrivendo p 1 = 2 α s con s dispari (avremo sicuramente α 2 perché p 1 è multiplo di 4). 2. Consideriamo gli elementi [2] p, [3] p, [4] p,... e li eleviamo alla potenza (p 1)/2. Non appena troviamo un elemento c tale che c (p 1)/2 = [ 1] p, poniamo b = c s. 3. Poniamo r 0 = a s+1 2. Dato che s è dispari s + 1 è pari e r 0 è ben definito. Successivamente, con l algoritmo di Euclide esteso, calcoliamo d = a 1 (quindi d è l inverso moltiplicativo di a in Z p). 4. Per i = 0, 1,..., α 2, usiamo r i per calcolare un nuovo elemento r i+1 Z p come segue. Sia w i = (r 2 i d)2α i 2. È possibile dimostrare che w i può essere uguale solamente a [±1] p. Se w i = [1] p poniamo r i+1 = r i, se w i = [ 1] p poniamo r i+1 = r i b 2i. 5. Una radice quadrata di a è data dall elemento r α 1 (cioè dall ultimo degli elementi r i calcolati al passo 4). Esempio 33 Supponiamo di voler calcolare le radici quadrate di [2] 41. Essendo 40 = abbiamo α = 3 e s = 5. Elevando alla potenza (41 1)/2 = 20 gli elementi [2] 41, [3] 41,..., il primo elemento la cui potenza risulta essere uguale a [ 1] 41 è [3] 41. Abbiamo quindi c = [3] 41 e b = c 5 = [38] 41. Poniamo poi r 0 = [2] (5+1)/2 41 = [2] 3 41 = [8] 41. Infine calcoliamo d = [2] 1 41 = [21] 41. A questo punto dobbiamo eseguire il passo 4 della procedura vista sopra e calcolare gli elementi r 0, r 1, r 2. Essendo α = 3 abbiamo che la radice quadrata sarà l elemento r 2. Abbiamo: w 0 = (r 2 0d) 2α 2 = ([8] 2 41[21] 41 ) 2 = [32] 2 41 = [ 1] 41 che implica r 1 = r 0 b 20 = [8] 41 [38] 41 = [17] 41. Abbiamo poi w 1 = (r 2 1d) 2α 3 = ([17] 2 41[21] 41 ) 20 = [1] 41 che implica r 2 = r 1 = [17] 41. Le radici quadrate di [2] 41 sono quindi ±[17] 41. Abbiamo infatti: 17 2 = 289 =

38 38 6 RADICI QUADRATE MODULO N E TEST DI MILLER-RABIN Esempio 34 Supponiamo di voler calcolare le radici quadrate di [7] Essendo 1200 = abbiamo α = 4 e s = 75. Elevando alla potenza (41 1)/2 = 600 gli elementi [2] 1201, [3] 1201,..., il primo elemento la cui potenza risulta essere uguale a [ 1] 1201 è [11] Abbiamo quindi c = [11] = [1152] Infine calcoliamo e b = c 75 = [473] Poniamo poi r 0 = [7] (75+1)/ = [7] 38 d = [7] = [858] A questo punto dobbiamo eseguire il passo 4 della procedura vista sopra e calcolare gli elementi r 0, r 1, r 2, r 3. Essendo α = 4 abbiamo che la radice quadrata sarà l elemento r 4. Abbiamo: w 0 = (r 2 0d) 2α 2 = ([1152] [858] 1201 ) 22 = [343] = [ 1] 1201 che implica r 1 = r 0 b 20 = [1152] 1201 [473] 1201 = [843] Abbiamo poi w 1 = (r 2 1d) 2α 3 = ([843] [858] 1201 ) 21 = [1152] = [ 1] 1201 che implica r 2 = r 1 b 2 = [909] Abbiamo infine w 2 = (r 2 2d) 2α 4 = ([909] [858] 1201 ) 20 = [ 1] 1201 che implica r 3 = r 2 b 22 = [1097] Le radici quadrate di [7] 1201 sono quindi ±[1097] Abbiamo infatti: = Radici quadrate modulo n = pq I metodi che abbiamo visto nella sezione precedente costituiscono un algoritmo efficiente (nel senso della Definizione 4) per il calcolo delle radici quadrate in Z p, con p primo. Tali metodi permettono di calcolare radici quadrate in pochi secondi (con un computer) anche quando il modulo ha centinaia di cifre. È naturale a questo punto chiedersi cosa possiamo dire sul problema del calcolo delle radice quadrate in Z n quando n non è un numero primo. In seguito considereremo il caso in cui n = pq è il prodotto di due numeri primi in quanto questo caso è il più semplice da trattare e importante per le applicazioni. Cominciamo vedendo cosa succede per n = 15. Abbiamo [0] 2 15 = [0] 15, [1] 2 15 = [1] 15, [2] 2 15 = [4] 15, [3] 2 15 = [9] 15, [4] 2 15 = [16] 15 [5] 2 15 = [10] 15, [6] 2 15 = [6] 15, [7] 2 15 = [4] 15, [8] 2 15 = [4] 15, [9] 2 15 = [6] 15 [10] 2 15 = [10] 15, [11] 2 15 = [16] 15, [12] 2 15 = [9] 15, [13] 2 15 = [4] 15, [14] 2 15 = [1] 15. Osserviamo che [4] 15 ha quattro radici quadrate; possiamo quindi concludere che se il modulo non è un numero primo il Teorema 16 non è valido. Il seguente teorema mostra che quando n = pq e [a] n Z n, allora le radici quadrate di [a] n in Z n sono strettamente correlate alla radici quadrate di [a] p in Z p e di [a] q in Z q. Teorema 18 Sia n = pq con p e q primi dispari, e sia a tale che MCD(a, n) = 1. La classe [a] n ha radici quadrate in Z n se e solo se [a] p ha radici quadrate in Z p e [a] q ha radici quadrate in Z q. Inoltre, se [a] n ha una radice quadrata in Z n allora ne ha esattamente quattro. Dimostrazione: Affinché sia [b] 2 n = [a] n deve essere b 2 a n 0. Ne segue che b 2 a deve essere multiplo sia di p che di q. Dal fatto che b 2 a p 0 ne segue che [b] 2 p = [a] p e quindi [a] p ha radici quadrate in Z p. Analogamente, dal fatto che b 2 a q 0 ne segue che [b] 2 q = [a] q e quindi [a] p ha radici quadrate in Z p. Supponiamo ora che ±[s] p siano le radici quadrate di [a] p in Z p e che ±[t] q siano le radici quadrate di [a] q in Z q. Risolvendo i quattro sistemi di congruenze: { x p +s x q +t { y p +s y q t { u p s u q +t { v p s v q t (37)

39 6.2 Radici quadrate modulo n = pq 39 otteniamo quattro classi di resto [x] n, [y] n, [u] n, [v] n che risultano essere radici quadrate di [a] n in Z n. Considerando ad esempio [u] n (ma per gli altri tre valori il discorso è analogo) abbiamo u 2 p ( s) 2 p a, e u 2 q (t) 2 q a. Ne segue che u 2 a è multiplo sia di p che di q e di conseguenza u 2 a n 0. Concludiamo osservando che essendo p e q due numeri primi distinti, il Teorema cinese del resto assicura che le soluzioni dei quattro sistemi (37) sono classi di congruenza modulo n = pq. Esempio 35 Sia n = 55. Vogliamo trovare, se esistono, le radici di [14] 55. Abbiamo che 14 mod 5 = 4; le radici di [4] 5 sono ovviamente ±[2] 5. Abbiamo poi 14 mod 11 = 3. Per il Teorema 17, la classe [3] 11 ha radici quadrate in quanto 3 5 = Dato che , per calcolare le radici quadrate di [3] 11 possiamo usare il Lemma 4 che ci dice che le radici sono ±([3] 3 11 ) = ±[5] 11. Possiamo quindi calcolare le radici di [14] 55 risolvendo i sistemi di congruenze: { x 5 2 x 11 5 { y 5 2 y 11 5 { u 5 2 u 11 5 { v 5 2 v 11 5 che forniscono le quattro radici quadrate [27] 55, [17] 55, [38] 55, [28] 55. Le radici quadrate di [14] 55 sono quindi ±[17] 55, e ±[27] 55. Supponiamo ora di voler calcolare le radici quadrate di [29] 55. Abbiamo 29 mod 5 = 4 le cui radici quadrate sono ±[2] 5. Invece 29 mod 11 = 7 e [7] 11 non ha radici quadrate in quanto Concludiamo allora che [29] 55 non ha radici quadrate in Z 55. Osservazione 18 Per calcolare le quattro radici quadrate di [a] n, è sufficiente risolvere soltanto i primi due dei sistemi (37). Infatti è immediato verificare che le soluzioni del terzo e del quarto sistema sono date rispettivamente dalle soluzioni del secondo e del primo sistema cambiate di segno. Quindi, possiamo calcolare solamente le soluzioni x e y dei primi due sistemi e concludere che le radici quadrate sono ±[x] n e ±[y] n. Esercizio 36 Calcolare, se esistono, le radici quadrate di [271] 943. Soluzione. Per prima cosa è necessario calcolare la fattorizzazione di 943. Provando a dividerlo per 3, 5, 7, 11,... si trova che 943 = Essendo 271 mod 23 = 18 e 271 mod 41 = 25 abbiamo che le radici quadrate di [271] 943 esistono se e solo se esistono le radici quadrate di [18] 23 e [25] 41. Per il Lemma 4 abbiamo che le radici quadrate di [18] 23 sono ±([18] 6 23 ) = ±[8] 23. Per calcolare le radici di [25] 41 possiamo utilizzare il procedimento di pagina 37 oppure più semplicemente accorgerci che due classi di resto che elevate al quadrato danno [25] 41 sono ±[5] 41. Per l Osservazione 18 per calcolare le radici di [271] 943 è sufficiente risolvere i due sistemi di congruenze: { x 23 8 x 41 5 { y 23 8 y 41 5 che forniscono le quattro radici quadrate ±[169] 943, ±[77] 943. Il Teorema 18 mostra che se conosciamo la fattorizzazione n = pq e MCD(a, n) = 1, allora esiste un algoritmo efficiente (nel senso della Definizione 4) per calcolare le radici quadrate di [a] n in Z n. È possibile dimostrare che anche quando MCD(a, n) > 1, il calcolo delle radici quadrate di [a] n si riconduce al calcolo di radici quadrate in Z p e Z q (l unica differenza è che se MCD(a, n) > 1 le radici sono al più due). Mostriamo ora che se invece non si conosce la fattorizzazione di n, cioè i due primi p e q, il calcolo delle radici quadrate in Z n è un problema difficile. Più precisamente, il seguente lemma mostra che il calcolo delle radici quadrate in Z n è altrettanto difficile del problema di calcolare la fattorizzazione di n. Lemma 5 Sia n = pq con p e q primi ma non noti. Sia [a] n tale che MCD(a, n) = 1 e sia [u] n una radice quadrata di [a] n. Per il Teorema 37 [a] n ha esattamente quattro radici quadrate. Il calcolo di una radice quadrata diversa da ±[u] n, è altrettanto difficile del calcolo della fattorizzazione di n.

40 40 6 RADICI QUADRATE MODULO N E TEST DI MILLER-RABIN Dimostrazione: Dobbiamo dimostrare che dalla conoscenza di una radice quadrata [v] n diversa da ±[u] n siamo in grado di ricavare i due primi p e q. Dalle relazioni u 2 n a e v 2 n a segue che u 2 v 2 n 0. Abbiamo quindi che u 2 v 2 = (u + v)(u v) è un multiplo di n. Dato che [v] n ±[u] n abbiamo che ne (u + v) ne (u v) sono multipli di n. Ma allora se calcoliamo MCD(u + v, n) il risultato non può essere ne 1 ne n. Quindi il risultato deve essere uguale a uno dei due fattori p o q. Dalla conoscenza di u e v siamo quindi in grado di calcolare la fattorizzazione di n eseguendo solamente il calcolo di un Massimo Comun Divisore. Esempio 36 Supponiamo di riuscire a scoprire che le radici quadrate di [47] 209 in Z 209 sono ±[16] 209 e ±[60] 209. Possiamo allora calcolare MCD( , 209) = MCD(76, 209) = 19 che è uno dei fattori di 209. Dividendo 209 per 19 troviamo 11 che è il secondo fattore. 6.3 Lancio di una moneta al telefono Due studenti di informatica, Alice e Bobo, si telefonano per decidere cosa fare la sera. Alice vorrebbe andare in pizzeria per guardare la partita del Pizzighettone sul megaschermo, mentre Bobo vorrebbe andare al cinema a vedere il remake di Voglia di tenerezza. Dopo un accesa discussione, decidono di affidarsi al caso e di tirare una moneta per stabilire dove andare. Il problema è che nessuno si fida dell altro: chi deve essere a tirare la moneta e a dire all altro qual è stato l esito del lancio? Chi non tira la moneta infatti non ha nessun modo di verificare che l altro riferisca onestamente l esito del lancio. Questo problema non interessa solamente Alice e Bobo: in diversi protocolli di comunicazione è necessario che due entità possano lanciare una moneta e lo si vuole fare in modo che nessuno dei partecipanti possa imbrogliare. A prima vista il problema sembra non risolubile a meno di non ricorrere a una terza entità imparziale e onesta. Alice e Bobo però hanno appena passato l esame di Matematica Discreta e sanno come risolvere il problema sfruttando il fatto che calcolare le radici quadrate in Z n è un problema difficile. Alice e Bobo utilizzano il seguente procedimento: 1. Alice genera due primi grandi p e q, ne calcola il prodotto n e lo comunica a Bobo. 2. Bobo sceglie a caso un elemento [b] n in Z n, calcola [a] n = [b] 2 n e lo comunica ad Alice. Dato che [a] n Z n, [a] n possiede quattro radici quadrate di cui Bobo ne conosce due: ±[b] n. 3. Alice, utilizzando il Teorema 37, calcola le quattro radici quadrate di [a] n. Siano esse ±[u] n e ±[v] n. Due di queste radici coincidono con la coppia ±[b] n conosciuta da Bobo, ma Alice non può sapere quali. Alice sceglie a caso un valore tra u e v (ad esempio u e dice a Bobo: Le radici in tuo possesso sono ±[u] n. 4. Se Alice ha indovinato è lei a vincere. Se invece non ha indovinato Bobo risponde No, le mie radici erano ±[b] n e il vincitore è lui. Esempio 37 Alice sceglie i due primi 13 e 17 e comunica a Bobo il loro prodotto 221. Bobo sceglie a caso il valore 107 e ne calcola il quadrato modulo 221. Ottiene il valore mod 221 = 178 e lo comunica ad Alice. Alice, usando la fattorizzazione di 221, calcola le quattro radici quadrate di [178] 221 che sono ±[29] 221 e ±[107] 221. A questo punto Alice deve tentare di indovinare quali sono le due radici conosciute da Bobo: se indovina (dicendo ±[107] 221 ) ha vinto, altrimenti (cioè se dice ±[29] 221 ) ha vinto Bobo. Perché con questo metodo ogni partecipante ha effettivamente il 50% di probabilità di vincere? Il motivo è che Alice non sa nulla di quali siano le radici conosciute da Bobo e quindi ha il 50% di probabilità di indovinare (e non ha nessuna possibilità di imbrogliare). Bobo potrebbe tentare di imbrogliare dicendo che ha vinto lui quando invece Alice aveva indovinato le radici in suo possesso. Però per sostenere di avere vinto Bobo deve fornire una coppia di radici diverse da quelle indicate da

41 6.4 Il test di primalità di Miller-Rabin 41 Alice. Se Alice aveva indovinato Bobo non ha ricevuto da lei nessuna nuova informazione e quindi dovrebbe calcolare in qualche modo due nuove radici. Ma per il Lemma 5 il calcolo di queste radici è altrettanto difficile del calcolo della fattorizzazione di n e quindi si suppone che Bobo non sia in grado di farlo velocemente (e Alice potrebbe insospettirsi se Bobo interrompesse la chiamata e si facesse vivo dopo qualche decina di anni sostenendo di avere vinto lui). 6.4 Il test di primalità di Miller-Rabin In questa sezione studieremo il funzionamento del test di Miller-Rabin che è attualmente il metodo più usato per verificare se un numero è primo o composto. Come vedremo, questo test ha la particolarità di poter commettere errori (cioè dichiarare che un numero è primo quando invece è composto), ma la probabilità di errore può essere resa molto piccola (più piccola ad esempio della probabilità che manchi la corrente sul computer che state usando per fare i conti). Il test di Miller-Rabin è in realtà un test di non primalità nel senso che tenta di scoprire se un dato numero è composto. Il test è basato sui seguenti risultati sulle classi di resto. Lemma 6 Sia n > 2 e sia a tale che 1 a < n. Se MCD(a, n) > 1 allora n è composto. Inoltre se MCD(a, n) = 1 ma (a n 1 mod n) 1 allora n è composto. Dimostrazione: Sia d = MCD(a, n). Se d > 1 allora d è un divisore di n maggiore di 1 quindi n non può essere primo. Se invece MCD(a, n) = 1 e n fosse primo, avremmo ϕ(n) = n 1 e di conseguenza per il Teorema di Eulero dovremmo avere a n 1 n 1. Quindi se (a n 1 mod n) 1 ne segue che n è composto. Lemma 7 Sia n > 2 un numero dispari, e sia a tale che 1 a < n e MCD(a, n) = 1. Sia s la massima potenza di 2 contenuta in n 1 (sicuramente s 1 in quanto n 1 è pari). Possiamo quindi scrivere n 1 = 2 s t con t dispari. Consideriamo la sequenza di elementi di Z n: x 0 = [a] t n, x 1 = [a] 2t n, x 2 = [a] 22 t n,..., x s = [a] 2s t n (osserviamo che x i+1 = x 2 i ). Se x s [1] n allora n non è primo. Inoltre, se x i ±[1] n e x i+1 = [1] n per un qualche i < s, allora n non è primo., se x s [1] n allora n non può essere primo per avremmo che l equazione x 2 = [1] n in Z n avrebbe almeno tre soluzioni distinte: x i e ±[1] n. Ma allora per il Teorema 16 n non può essere primo. = [a] n 1 n Dimostrazione: Dato che x s = [a] 2s t n il Lemma 6. Supponiamo ora che x i+1 = [1] n ma x i ±[1] n. Dato che x i+1 = x 2 i Esempio 38 Sia n = 1173 e a = 7. Dato che 1172 = dobbiamo calcolare la sequenza: x 0 = [7] = [28] 1173, x 1 = [28] = [784] 1173, x 2 = [784] = [4] Dato che x 2 = [7] [1] 1173 possiamo concludere che 1173 non è primo. Esempio 39 Sia n = 561 e a = 7. Dato che 560 = dobbiamo calcolare la sequenza: x 0 = [7] = [241] 561, x 1 = [241] = [298] 561, x 2 = [298] = [166] 561, x 3 = [166] = [67] 561, x 4 = [67] = [1] 561. Abbiamo quindi trovato che [67] 561 è una radice quadrata di [1] 561. Ma se 561 fosse primo, per il Teorema 16 le uniche radici quadrate di [1] 561 sarebbero ±[1] 561 e di conseguenza possiamo concludere che 561 non è primo.

42 42 6 RADICI QUADRATE MODULO N E TEST DI MILLER-RABIN Esempio 40 Prendiamo ancora n = 561 ma a = 50. Calcoliamo la sequenza: x 0 = [50] = [560] 561, x 1 = [560] = [1] 561, x 2 = [1] = [1] 561, x 3 = [1] = [1] 561, x 4 = [1] = [1] 561. Essendo [560] 561 = [1] 561 questo esperimento non ci fa scoprire che 561 è composto. Osserviamo che l esperimento descritto nel Lemma 7, cioè il calcolo della sequenza x 0, x 1,..., x s, ci può soltanto dire che il numero n è composto e non potra mai dare il responso n è un numero primo. Inoltre, l Esempio 40 mostra che anche quando n è composto il calcolo della sequenza x 0, x 1,..., x s e l uso del Lemma 7 non sempre riescono a scoprire la non primalità di n. È possibile dimostrare però che i numeri compresi fra 1 e n 1 che rivelano che n è composto sono più della metà del totale. Ci limitiamo a dare l enunciato di questo risultato in quanto la dimostrazione è piuttosto complessa. Teorema 19 Sia n un numero dispari composto. Gli interi a compresi fra 1 e n 1 tali che applicando il Lemma 7 alla coppia n, a ci permettono di scoprire che n è composto sono almeno (n 1)/2. Il test di Miller-Rabin è basato sul Teorema 19. Per vedere se un numero n è primo o composto vengono scelti a caso un numero elevato, per esempio 1000, di interi compresi fra 1 e n 1 (ricordiamo che questo test si applica solitamente quando n ha decine o centinaia di cifre). Per ognuno di questi interi si esegue l esperimento descritto nel Lemma 7. Se l esperimento rivela che n è composto il test di Miller-Rabin termina segnalando questo fatto. Se nessuno dei 1000 esperimenti ha rilevato che n è composto, il test di Miller-Rabin termina segnalando che n è primo. Così facendo il test potrebbe anche commettere un errore in quanto n potrebbe essere composto e noi potremmo essere stati sfortunati nella scelta degli interi fra 1 e n 1 non scegliendone nessuno di quelli che ci avrebbero permesso di scoprire la non primalità di n. Ma, in virtù del Teorema 19, la probabilità di essere sfortunati nella scelta per 1000 volte è minore di In altre parole, la probabilità di errore del Test di Miller-Rabin è minore della probabilità che alla roulette esca il rosso per 1000 lanci consecutivi.... Osservazione 19 Il test può apparire complicato concettualmente, cioè non è immediato capire il perché il procedimento funzioni correttamente. Ma è importante riconoscere che le operazioni svolte dal test sono molto semplici in quanto consistono solamente nel calcolo di potenze in Z n. Come conseguenza abbiamo che il test di Miller-Rabin è un algoritmo efficiente per il problema della primalità secondo la Definizione 4.

43 43 7 Polinomi e codici di Reed-Solomon In questo capitolo saranno descritte le principali proprietà dei polinomi e verrà mostrato come i polinomi a coefficienti in Z p con p primo siano alla base dei codici a correzione di errore di Reed-Solomon. Questi codici permettono di correggere gli errori che si possono verificare durante la trasmissione o la memorizzazione dei dati e sono per questo usati in CD, DVD, dischi Blu-ray, linee ADSL, e per le comunicazioni con le sonde interplanetarie (tipo Voyager per intenderci). 7.1 Terminologia sui polinomi Dalla scuola superiore sappiamo che un polinomio è un espressione contenente le potenze di una quantità indeterminata. Ad esempio, p(x) = 4x 3 x + 15 è un polinomio nell indeterminata x. Anche espressioni che non contengono la quantità indeterminata x sono considerati particolari polinomi detti polinomi costanti. Un esempio di polinomio costante è quindi p(x) = 3; volendo possiamo pensarlo come p(x) = 3x 0 visto che per qualsiasi valore x si ha x 0 = 1. Sempre dalla scuola superiore sappiamo come sommare e moltiplicare tra loro i polinomi e sappiamo che la somma e il prodotto tra polinomi soddisfano le proprietà s 1 -s 4, p 1 -p 3, e d 1 viste nella Sezione 1.1. Ad esempio sappiamo che vale a(x) + [b(x) + c(x)] = [a(x) + b(x)] + c(x) (proprietà s 2 ), e che a(x)b(x) = b(x)a(x) (proprietà p 1 ). L elemento neutro rispetto all addizione è il polinomio costante p(x) = 0, detto anche polinomio nullo. L elemento neutro rispetto alla moltiplicazione è il polinomio costante p(x) = 1. Un operazione molto comune per i polinomi è la valutazione in un punto, cioè il calcolo di cosa si ottiene se sostituiamo un particolare valore α all indeterminata x. Il valore ottenuto con questo procedimento viene indicato con p(α). Ad esempio, se p(x) = 2x 2 3 abbiamo p(0) = 3, p(1) = 1 e p(10) = 197. Notiamo che se p è un polinomio costante non ci sono conti da fare e p(α) assume sempre lo stesso valore (e questo spiega l uso dell aggettivo costante per denotare questi polinomi). Definizione 5 Il grado del polinomio p(x) = a n x n + a n 1 x n a 2 x 2 + a 1 x + a 0 è il più grande intero i per cui a i 0. Se tutti i coefficienti a i sono uguali a zero (quindi p(x) è il polinomio nullo) sia assume che il grado sia 1. Osserviamo che in base alla definizione appena vista tutti i polinomi costanti hanno grado zero tranne il polinomio nullo 3 che ha grado 1. Alla scuola superiore abbiamo visto polinomi a coefficienti interi o razionali; ora che conosciamo le classi di resto possiamo definire e utilizzare polinomi i cui coefficienti sono elementi di un particolare insieme Z n. Ad esempio p(x) = [4] 18 x 3 + [11] 18 x 2 [7] 18 x + [2] 18 è un polinomio di grado 3 a coefficienti in Z 18. Notiamo che lavorando in Z 18 il polinomio nullo è il polinomio costante p(x) = [0] 18. È possibile valutare in un punto anche i polinomio a coefficienti in Z n. Ad esempio se valutiamo il polinomio in Z 18 appena visto in [2] 18 abbiamo p([2] 18 ) = [4] 18 [2] [11] 18 [2] 2 18 [7] 18 [2] 18 + [2] 18 = [10] 18. Naturalmente, il valore che si sostituisce alla x deve appartenere allo stesso insieme dei coefficienti: non ha alcun senso valutare un polinomio a coefficienti in Z 18 in 1/3 o in [1] Polinomi a coefficienti in un campo Nel resto di questo capitolo ci restringeremo a studiare i polinomi i cui coefficienti appartengono ad un campo, cioè ad un insieme in cui tutti gli elementi tranne lo zero hanno l inverso moltiplicativo. Per questi polinomi infatti valgono alcune importanti proprietà che non sono vere quando i coefficienti non hanno questa proprietà. Per cominciare il nostro studio, diamo la definizione formale di campo. 3 Non in tutti i testi di matematica il grado del polinomio nullo è definito allo stesso modo; in alcuni testi si può trovare che il polinomio nullo ha grado o che il polinomio nullo non ha grado. La cosa non è molto importante: quello che conta è che il polinomio nullo è diverso dagli altri polinomi costanti.

44 44 7 POLINOMI E CODICI DI REED-SOLOMON Definizione 6 Un insieme dotato delle operazioni di somma e prodotto che soddisfano alle prioprietà della Sezione 1.1 e in cui ogni elemento diverso da 0 ha l inverso moltiplicativo è detto un campo. Esempi di campi sono i numeri razionali (le frazioni) e i numeri reali (quelli che si usano nel corso di Analisi). L insieme dei numeri interi Z invece non è un campo in quanto solamente 1 e 1 hanno l inverso moltiplicativo: ad esempio il numero 3 non ha l inverso moltiplicativo in Z in quanto non esiste nessun intero a tale che 3a = 1. Per quanto riguarda gli insiemi Z n dal Corollario 1 segue immediatamente che Z n è un campo se e soltanto se n è un numero primo. Quindi Z 5 è un campo in quanto le classi [1] 5, [2] 5, [3] 5, [4] 5 hanno l inverso moltiplicativo, mentre Z 12 non è un campo in quanto la classe [6] 12 non ha inverso moltiplicativo. Il principale motivo per cui si considerano i polinomi a coefficienti in un campo, è che con essi è possibile effettuare la divisione euclidea (quella che fornisce quoziente e resto per intenderci) con proprietà analoghe a quelle viste per la divisione euclidea tra interi. Abbiamo infatti che dati due polinomi a coefficienti in un campo a(x) e b(x), con b(x) 0, è possibile trovare due polinomi q(x) e r(x), detti rispettivamente quoziente e resto, tali che a(x) = b(x)q(x) + r(x), e grado(r) < grado(b). Il procedimento per il calcolo di quoziente e resto è stato visto alle scuole superiori (ricordate?). L idea di base è quella di ottenere i termini del polinomio quoziente uno alla volta a partire da quello di grado massimo. Contemporaneamente si calcola una successione di polinomi a 0 (x) = a(x), a 1 (x), a 2 (x), etc. di grado sempre più piccolo. Il procedimento termina quando si ottiene un polinomio a i (x) di grado minore di grado(b). Tale a i (x) costituisce il resto della divisione mentre il quoziente è dato dalla somma dei termini ottenuti fino a quel momento. Illustriamo questo procedimento con due esempi. Esempio 41 Consideriamo la divisione fra i due polinomi a coefficienti razionali a(x) = 3x 4 + x 3 (3/2)x 2 + (1/2)x + 5 e b(x) = x + 1. Il termine di grado massimo del quoziente si ottiene dal rapporto tra i termini di grado massimo di a 0 (x) = a(x) e b(x). Nel nostro caso tale rapporto è (3x 4 )/x = 3x 3. Si utilizza poi il termine 3x 3 appena calcolato per ottenere il polinomio a 1 (x) mediante la formula a 1 (x) = a 0 (x) (3x 3 )b(x) = 2x 3 (3/2)x 2 + (1/2)x + 5. Il successivo termine del quoziente si ottiene dal rapporto tra i termini di grado massimo di a 1 (x) e b(x) e risulta quindi ( 2x 3 )/x = 2x 2. Si utilizza poi tale termine per calcolare a 2 (x) = a 1 (x) ( 2x 2 )b(x) = (1/2)x 2 + (1/2)x + 5. Il successivo termine del quoziente si ottiene dal rapporto tra i termini di grado massimo di a 2 (x) e b(x) e risulta quindi (x 2 /2)/x = (x/2). A questo punto si calcola a 3 (x) = a 2 (x) (x/2)b(x) = 5. Essendo grado(a 3 ) < grado(b) il procedimento si interrompe. Il resto della divisione è dato da r(x) = a 3 (x) = 5, mentre il quoziente è dato dalla somma dei termini ottenuti durante il procedimento e risulta quindi q(x) = 3x 3 2x 2 + (x/2). Esempio 42 Consideriamo ora polinomi in Z 11. Per alleggerire la notazione, in seguito omettiamo il pedice 11 dalle classi di resto (scriviamo ad esempio [3] invece di [3] 11 ). Calcoliamo quoziente e resto della divisione fra a(x) = [3]x 4 + [2]x 3 + [5]x 2 + [1]x + [7], e b(x) = [2]x 2 + [1]x + [1]. Il termine di grado massimo del quoziente si ottiene facendo il rapporto fra i termini di grado massimo di a 0 (x) = a(x) e b(x). Esso risulta quindi (ricordiamo che siamo in Z 11 ) ([3]x 4 )/([2]x 2 ) = [2] 1 [3]x 2 = [6][3]x 2 = [7]x 2. Si calcola poi a 1 (x) = a 0 (x) ([7]x 2 )b(x) = [6]x 3 + [9]x 2 + [1]x + [7].

45 7.2 Polinomi a coefficienti in un campo 45 Il termine successivo del quoziente si ottiene dal rapporto fra i termini di grado massimo di a 1 (x) e b(x), che risulta ([6]x 3 )/([2]x 2 ) = [3]x. Si calcola poi a 2 (x) = a 1 (x) ([3]x)b(x) = [6]x 2 + [9]x + [7]. Il termine successivo del quoziente si ottiene dal rapporto fra i termini di grado massimo di a 2 (x) e b(x), che risulta ([6]x 2 )/([2]x 2 ) = [3]. Calcoliamo infine a 3 (x) = a 2 (x) ([3])b(x) = [6]x + [4]. Essendo grado(a 3 ) < grado(b) il procedimento termina fornendo quoziente q(x) = [7]x 2 + [3]x + [3] e resto r(x) = [6]x + [4]. Osservazione 20 Possiamo notare come il fatto che i coefficienti dei polinomi appartengano ad un campo (e quindi tranne lo zero siano invertibili) sia fondamentale per poter eseguire la divisione. Supponiamo infatti di voler eseguire la divisione fra a(x) = x 2 + [1] 6 e b(x) = [2] 6 x + [1] 6. Se cerchiamo di applicare il procedimento visto negli esempi precedenti, notiamo che come prima dovremmo calcolare il rapporto tra x 2 e [2] 6 x. Ma questo non è possibile in quanto la classe [2] 6 non ha l inverso moltiplicativo. In effetti, non è difficile convincersi che non esiste nessuna coppia di polinomi q(x) e r(x) tali che a(x) = b(x)q(x) + r(x). Avendo introdotto la divisione euclidea tra polinomi possiamo ottenere molti dei risultati visti nel Capitolo 1 per i numeri interi. Possiamo ad esempio definire il massimo comun divisore tra due polinomi a(x) e b(x) come il polinomio di grado massimo che divide sia a(x) che b(x). Il massimo comun divisore può essere calcolato con l algoritmo di Euclide che, ricordiamo, consiste in una successione di divisioni euclidee e che quindi siamo in grado di eseguire anche con i polinomi. Per mancanza di tempo però non approfondiremo questo argomento. Utilizzando le proprietà della divisione euclidea è possible dimostrare anche il seguente importante teorema. Teorema 20 (Teorema fondamentale dell algebra). Un polinomio non nullo di grado n a coefficienti in un campo ha al più n radici. Il Teorema 20 ha molte applicazioni, ma per quanto ci riguarda utilizzeremo solamente la conseguenza espressa dal seguente corollario. Corollario 3 Siano p(x) e q(x) due polinomi a coefficienti in un campo entrambi di grado minore o uguale a n. Se p(x) e q(x) sono diversi tra loro allora esistono al più n valori distinti x 1,..., x n tali che p(x i ) = q(x i ) per i = 1,... n. Dimostrazione: Consideriamo il polinomio differenza d(x) = p(x) q(x). Dato che p(x) e q(x) sono distinti, d(x) è un polinomio non nullo di grado al più n. Per il Teorema (20) esistono al più n valori x 1,..., x n tali che d(x i ) = 0. Il corollario segue immediatamente osservando che essendo d(x i ) = p(x i ) q(x i ) possiamo avere p(x i ) = q(x i ) soltanto per quei (al più n) valori x i tali che d(x i ) = 0. Introduciamo infine il concetto di polinomio interpolatore. Informalmente il polinomio interpolatore è un polinomio che passa per un insieme assegnato di punti. La definizione formale e il metodo per calcolarlo sono date nel seguente teorema. Come nel resto della sezione assumiamo che tutti i valori su cui lavoriamo appartengano ad un campo. Teorema 21 (Polinomio Interpolatore). Date n + 1 coppie di valori (x 0, y 0 ), (x 1, y 1 ),..., (x n, y n ) con i valori x i distinti (cioè x i x j per i j), possiamo trovare un polinomio p(x) di grado minore o uguale ad n tale che p(x 0 ) = y 0, p(x 1 ) = y 1,... p(x n 1 ) = y n 1, p(x n ) = y n. Si dice che il polinomio p interpola i punti (x 0, y 0 ),..., (x n, y n ).

46 46 7 POLINOMI E CODICI DI REED-SOLOMON Dimostrazione: Per i = 0, 1,..., n costruiamo il polinomio: L i (x) = (x x 0)(x x 1 ) (x x i 1 )(x x i+1 ) (x x n ) (x i x 0 )(x i x 1 ) (x i x i 1 )(x i x i+1 ) (x i x n ). Osserviamo che L i (x) al numeratore contiene il prodotto di tutti i termini (x x j ) tranne il termine (x x i ). Dato che i termini sono in totale n, il numeratore è un polinomio di grado n. Al denominatore L i (x) contiene il prodotto di tutti i termini (x i x j ) tranne il termine (x i x i ) (che per fortuna non c è, perché se ci fosse renderebbe nullo il denominatore). Il motivo per cui si considerano i polinomi L i (x), è che essi godono della seguente proprietà: L i (x i ) = 1, e L i (x j ) = 0 per x j x i (38) Ad esempio, se consideriamo il polinomio L 1 (x) abbiamo che L 1 (x 1 ) = 1, mentre L 1 (x 0 ), L 1 (x 2 ), etc. sono tutti uguali a zero. Per dimostrare la (38) è sufficiente osservare che quando valutiamo L i (x) in x i abbiamo che il numeratore diventa uguale al denominatore e quindi il loro rapporto è 1. Se invece valutiamo L i (x) in un valore x j x i abbiamo che uno dei termini al numeratore diventa zero e di conseguenza L i (x j ) = 0. Avendo dimostrata questa proprietà dei polinomi L i (x) è immediato verificare che p(x) = y 0 L 0 (x) + y 1 L 1 (x) + y 2 L 2 (x) + + y n L n (x) (39) è il polinomio che interpola i punti (x i, y i ) cioè per i = 0, 1,..., n si ha che p(x i ) = y i. Infatti, per la (38) abbiamo p(x i ) = y 0 L 0 (x i ) + y 1 L 1 (x i ) + + y i L i (x i ) + + y n L n (x i ) = y y y i y n 0 = y i Osserviamo infine che p(x) è la somma di polinomi di grado n quindi ha anch esso grado al più n come richiesto dal teorema. Esempio 43 Consideriamo polinomi in Z 11 omettendo per semplicità il pedice 11 dalle classi di resto. Supponiamo di voler costruire il polinomio p(x) tale che p([1]) = [7], p([3]) = [0], p([9]) = [5]. Dobbiamo quindi applicare il Teorema 21 con Costruiamo i polinomi x 0 = [1], y 0 = [7], x 1 = [3], y 1 = [0], x 2 = [9], y 2 = [5]. L 0 (x) = (x [3])(x [9]) ([1] [3])([1] [9]) = x2 +[10]x+[5] [5] = [9]x 2 + [2]x + [1]; L 1 (x) = (x [1])(x [9]) ([3] [1])([3] [9]) = x2 +x+[9] [10] = [10]x 2 + [10]x + [2]; L 2 (x) = (x [1])(x [3]) ([9] [1])([9] [3]) = x2 +[7]x+[3] [4] = [3]x 2 + [10]x + [9]. È immediato verificare che vale per esempio L 0 ([1]) = [1], L 0 ([3]) = 0, e L 0 ([9]) = [0]. Applicando la (39) otteniamo che il polinomio interpolatore è dato da p(x) = [7]([9]x 2 + [2]x + [1]) + [0]([10]x 2 + [10]x + [2]) + [5]([3]x 2 + [10]x + [9]) = x 2 + [9]x + [8]. Notiamo per inciso che essendo y 1 = [0] potevamo risparmiarci la fatica di calcolare L 1 (x). Osservazione 21 La formula (39) è detta formula di Lagrange per il calcolo del polinomio interpolatore. Notiamo che essa è la generalizzazione della formula vista alle scuole superiori per il calcolo della retta che passa per due punti. La cosa non deve sorprendere in quanto una retta è semplicemente un polinomio di grado 1.

47 7.3 Codici a correzione di errore di Reed-Solomon 47 Come vedremo, i codici a correzione di errore sono basati sul fatto che esiste un unico polinomio interpolatore. Questa proprietà è dimostrata dal seguente teorema. Teorema 22 Date n + 1 coppie di valori (x 0, y 0 ), (x 1, y 1 ),..., (x n, y n ) con i valori x i distinti, esiste un unico polinomio interpolatore p(x) di grado minore o uguale ad n tale che p(x 0 ) = y 0, p(x 1 ) = y 1,... p(x n 1 ) = y n 1, p(x n ) = y n. Dimostrazione: Per il Corollario 3 due polinomi di grado minore o uguale a n possono assumere lo stesso valore in al massimo n punti. Non possono quindi esistere due polinomi interpolatori diversi in quanto essi dovrebbero coincidere negli n + 1 punti x 0,..., x n. 7.3 Codici a correzione di errore di Reed-Solomon In questa sezione mostreremo il funzionamento dei codici di correzione di errore di Reed-Solomon. Mostreremo l idea alla base di questi codici con un esempio piccolo costruito lavorando in Z 11 e discuteremo poi come l idea si generalizza per numeri primi più grandi. Come detto iniziamo lavorando in Z 11. Per alleggerire la notazione, in seguito omettiamo il pedice 11 dalle classi di resto. Supponiamo di voler trasmettere un messaggio M 1 che consiste di 6 elementi di Z 11, ad esempio M 1 = [3], [5], [5], [2], [7], [1]. Invece di trasmettere semplicemente questi 6 valori, il codice di Reed-Solomon costruisce il polinomio P 1 (x) = [3] + [5]x + [5]x 2 + [2]x 3 + [7]x 4 + [1]x 5 (40) e trasmette la sequenza di valori P 1 ([i]) per i = 1, 2,..., 10. Nel nostro caso, dato che P 1 ([1]) = [1], P ([2]) = [6], etc. viene trasmessa la sequenza di valori S 1 = [1], [6], [3], [0], [5], [3], [10], [6], [0], [7]. (41) Notiamo quindi che vengono trasmessi 10 elementi di Z 11 invece dei 6 che costituivano il messaggio originale. Vediamo ora che trasmettere quattro valori in più permette al destinatario di ricostruire il messaggio originale anche se uno o due (dei 10) valori trasmessi vengono corrotti durante la trasmissione (cioè il destinatario riceve un valore diverso da quello spedito). Questa è infatti l idea di base dei codici a correzione di errore: trasmettere più dati del necessario allo scopo di poter ricostruire il messaggio originale anche in presenza di errori nella trasmissione. Naturalmente ogni schema di correzione può correggere solo un numero limitato di errori (nel nostro esempio fino a due errori): se la trasmissione è cosi disturbata che ogni valore trasmesso viene corrotto nessuno schema di correzione di errori può restituirci il messaggio originale. Tornando al nostro esempio in cui viene trasmessa la sequenza (41), mostriamo per prima cosa come si possa ricostruire il messaggio originale nel caso in cui non ci siano errori di trasmissione. Il destinatario del messaggio non deve fare altro che risolvere il problema di interpolazione di trovare il polinomio p(x) tale che p([1]) = [1], p([2]) = [6], p([3]) = [3],... p([10]) = [7]. Tale polinomio può essere calcolato usando la formula (39). Dato che per il Teorema 22 esiste un unico polinomio interpolatore di grado minore o uguale a 9, questo procedimento non potrà che restituire il polinomio P 1 (x) dato da (40); e dai coefficienti di questo polinomio il destinatario potrà recuperare il messaggio originale M 1 = [3], [5], [5], [2], [7], [1]. Mostriamo ora che anche nel caso in cui il destinatario riceva una sequenza che differisce da S 1 per uno o due valori, sarà sempre possibile ricostruire il messaggio originale. Consideriamo un qualsiasi altro messaggio M 2 = b 0, b 1, b 2, b 3, b 4, b 5, con b i Z 11 per i = 0,..., 5. A tale messaggio corrisponde il polinomio P 2 (x) = b 0 + b 1 x + b 2 x 2 + b 3 x 3 + b 4 x 4 + b 5 x 5 e la sequenza S 2 = P 2 ([1]), P 2 ([2]),..., P 2 ([10]).

48 48 7 POLINOMI E CODICI DI REED-SOLOMON Lemma 8 Se M 1 M 2 le sequenze S 1 e S 2 differiscono in almeno 5 posizioni. Dimostrazione: Dato che M 1 M 2 i polinomi P 1 e P 2 sono distinti. Dato che hanno entrambi grado al più 5, per il Corollario 3 essi possono assumere lo stesso valore in al più 5 punti, cioè esistono al massimo 5 elementi x 1,..., x 5 Z 11 per cui P 1 (x i ) = P 2 (x i ). Dato che le sequenze S 1 ed S 2 hanno lunghezza 10, esse devono differire in almeno 5 posizioni. Supponiamo ora che il destinatario invece di S 1 riceva una sequenza Ŝ1 che differisce da S 1 in al più due posizioni. Il punto fondamentale è che la sequenza Ŝ1 differirà da una qualsiasi altra sequenza S 2, ottenuta da un messaggio M 2 con il procedimento appena visto, in almeno 3 posizioni. Infatti, per il Lemma 8 S 2 differisce da S 1 in almeno 5 posizioni: ogni errore di trasmissione può avvicinare Ŝ1 a S 2, ma dato che gli errori sono al più due, Ŝ1 differirà da S 2 in almeno 3 posizioni. Di conseguenza, un possibile procedimento per ricostruire il messaggio originale è il seguente: 1. Si generano tutti i possibili messaggi M = b 0, b 1, b 2, b 3, b 4, b 5 ; 2. Per ogni messaggio M si costruisce la corrispondente sequenza di 10 elementi e la si confronta con Ŝ1 3. Il messaggio originale è quello che genera un sequenza che differisce da Ŝ1 in al più due posizioni. Se nessuna sequenza differisce da Ŝ1 in al più due posizioni vuol dire che durante la trasmissione si sono verificati più di due errori. Questo procedimento è corretto, ma è molto inefficiente. Per rendersene conto basta osservare che anche nel nostro esempio piccolo ci sono 11 6 = possibili messaggi da provare. Fortunatamente esiste anche un metodo più efficiente per ricostruire il messaggio originale basato sull interpolazione e sull algoritmo di Euclide esteso. Per motivi di tempo non riusciremo a descrivere questo metodo. Ci limitiamo quindi a mostrare il funzionamento e le proprietà dei codici di Reed-Solomon per un primo p qualsiasi. Sia p un primo qualsiasi e indichiamo con [0], [1],..., [p 1] gli elementi di Z p. Supponiamo di voler trasmettere un messaggio M 1 che consiste di k elementi di Z p, M 1 = a 0, a 1,... a k 1 con k < p. Il codice di Reed-Solomon costruisce il polinomio di grado k 1 e trasmette la sequenza di p 1 elementi P 1 (x) = a 0 + a 1 x + a 2 x a k 1 x k 1 S 1 = P 1 ([1]), P 1 ([2]),..., P 1 ([p 1]). Abbiamo quindi che vengono trasmessi p 1 elementi di Z p invece dei k che costituiscono il messaggio. Per capire quale sia il vantaggio di trasmettere d = p 1 k elementi più del necessario, consideriamo un secondo messaggio M 2 = b 0, b 1,..., b k 1, il corrispondente polinomio P 2 (x) = b 0 + b 1 x + + b k 1 x k 1, e la sequenza S 2 = P 2 ([1]),..., P 2 ([p 1]). Il seguente lemma generalizza il Lemma 8. Lemma 9 Se M 1 M 2 le sequenze S 1 e S 2 differiscono in almeno p k posizioni. Dimostrazione: Dato che M 1 M 2 i polinomi P 1 e P 2 sono distinti. Dato che hanno entrambi grado al più k 1, per il Corollario 3 essi possono assumere lo stesso valore in al più k 1 punti, cioè esistono al massimo k 1 elementi x 1,..., x k 1 Z p per cui P 1 (x i ) = P 2 (x i ). Dato che le sequenze S 1 ed S 2 hanno lunghezza p 1, esse devono differire in almeno p k posizioni. Ragionando come nel caso p = 11, siamo in grado di dimostrare il seguente teorema che ci fornisce il massimo numero di errori che possono essere corretti da un codice di Reed-Solomon su Z p. Teorema 23 Se vengono trasmessi d = p 1 k valori più del necessario, i codici di Reed-Solomon permettono di correggere fino a d/2 errori di trasmissione.

49 7.3 Codici a correzione di errore di Reed-Solomon 49 Dimostrazione: Consideriamo il messaggio originale M 1 e un qualsiasi altro messaggio M 2 M 1. Per il Lemma 9 le sequenze ad essi associate S 1 e S 2 differiscono in almeno d + 1 = p k posizioni. Se si verificano al massimo d/2 errori durante la trasmissione la sequenza S 1 sarà trasformata in una nuova sequenza Ŝ1 che differisce da S 2 in almeno d + 1 (d/2) = (d/2) + 1 posizioni, in quanto ogni errore può far diminuire di 1 il numero di differenze tra Ŝ1 a S 2. Dato però che Ŝ1 differisce da S 1 in al più d/2 posizioni abbiamo che data la sequenza Ŝ1 il destinatario è in sempre grado di identificare S 1 (e quindi M 1 ) in quanto S 1 è l unica sequenza che differisce da Ŝ1 in al più d/2 posizioni. Esempio 44 Supponiamo che p = 251 e k = 230. Invece di trasmettere un messaggio di lunghezza 230 il codice di Reed-Solomon ne trasmette uno di lunghezza 250. In questo caso abbiamo d = 20, quindi il destinatario può ricostruire il messaggio originale se si verificano fino a 10 errori. Infatti, se M 1 M 2 le sequenze corrispondenti S 1 ed S 2 differiscono in almeno 21 posizioni (Lemma 9). Di conseguenza la sequenza con errori Ŝ 1 differisce da S 1 in al massimo 10 posizioni e differisce da qualsiasi altra sequenza S 2 in almeno 11 posizioni. Esercizio 37 Dovete spedire un lungo messaggio che consiste in una sequenza di interi compresi tra 0 e 999. Il canale di comunicazione che utilizzate garantisce che su 10 valori spediti almeno 7 vengono ricevuti correttamente. Descrivere un codice di Reed-Solomon che permette al destinatario di ricostruire correttamente il messaggio originale. Soluzione. Prendiamo p = 1009 che è il più piccolo primo successivo a Il nostro messaggio dovrà essere spezzato in blocchi di k valori e su ogni blocco si applica un codice di Reed-Solomon. Il problema è di determinare k in modo che tutti gli eventuali errori di trasmissione vengano corretti. Ricordiamo che dati k valori del messaggio originale un codice di Reed-Solomon ne trasmette p 1 = Per le caratteristiche del canale di comunicazione sappiamo che su 1008 valori trasmessi gli errori saranno al massimo Per il Teorema 23, da una sequenza di 1008 valori siamo in grado di ricostruire i k valori del messaggio originale se il numero di errori commessi è minore o uguale a (1008 k)/2. Imponendo che sia 303 (1008 k)/2 si ottiene k 402. La soluzione consiste quindi nello spezzare il messaggio originale in blocchi di 402 valori e applicare il codice di Reed-Solomon con p = 1009 ad ognuno di questi blocchi. Come controprova osserviamo che il codice con parametri p = 1009 e k = 402 per il Teorema 23 può correggere fino a 303 errori che si verificano in ogni sequenza di 1008 valori trasmessa dal codice. Ma dato che il nostro canale commette al massimo 3 errori ogni 10 valori trasmessi, il numero di errori su ogni sequenza lunga 1008 sarà al massimo 303 e quindi saremo sempre in grado di ricostruire i 402 valori del messaggio.

50 50 8 ESERCIZI DI RIEPILOGO 8 Esercizi di riepilogo Esercizio 38 Avete acquistato 72 bottiglie di succo di papaya: nello scontrino il prezzo totale appare come X8.5Y euro dove X e Y sono due cifre illeggibili. Quanto è costata ogni singola bottiglia? Soluzione. Il prezzo (espresso in centesimi) è il numero di quattro cifre X85Y. Tale numero deve essere divisibile per 72, quindi deve essere divisibile per 8 e per 9. Affinché X85Y sia un multiplo di 8, il numero composto dalle ultime tre cifre (cioè 85Y ) deve essere multiplo di 8 (vedi Osservazione 7). Questo è possibile solo per Y = 6 perché tra i numeri fra 850 e 859 l unico multiplo di 8 è 856. Affinché X856 sia multiplo di 9, deve essere X = X + 19 multiplo di 9 (vedi Teorema 7) e quindi X = 8. Il prezzo pagato è stato quindi euro e il costo di ogni singola bottiglia 88.56/72 = 1.23 euro. Esercizio 39 Quali sono le ultime 2 cifre di ? Soluzione. Le ultime due cifre di un numero intero positivo sono date dal resto della divisione per 100. Quindi dobbiamo calcolare mod 100. Essendo ϕ(100) = 40, per l Osservazione 10 abbiamo mod 100 = mod 100 = 89 3 mod 100 = 69. Esercizio 40 Dire se il numero in base 16 (F F F F CF 3) 16 è divisibile per 15. Soluzione. Per l Osservazione 8 abbiamo che un numero in base 16 è divisibile per 15 se e solo se la somma delle sue cifre è divisibile per 15. Ricordando che F = 15 e C = 12 abbiamo che mod 15 = 0 quindi il numero è divisibile per 15. Esercizio 41 Di un numero intero positivo n sappiamo che diviso per 8 da resto 7 e diviso per 125 da resto 19. Quali sono le ultime 3 cifre di n? Soluzione. Le ultime tre cifre di n sono date da n mod Il testo dell esercizio ci dice che valgono le relazioni: { n mod 8 = 7 (42) n mod 125 = 19. Per il teorema cinese del resto la soluzione di questo sistema è una classe di resto modulo mcm(8, 125) = 1000 quindi per risolvere l esercizio è sufficiente risolvere il sistema (42). Svolgendo i conti nella maniera usuale si ottiene n e quindi la soluzione dell esercizio sono le tre cifre 519. Esercizio 42 Il pianeta Thoran ha 3 soli e 3 lune. La prima luna eclissa il primo sole ogni 57 giorni e il secondo sole ogni 42 giorni. La seconda luna eclissa il secondo sole ogni 19 giorni e il terzo sole ogni 16 giorni. La terza luna eclissa il primo sole ogni 52 giorni. Oggi si è verificata l eclisse contemporanea di tutti e 3 i soli. Tra quanti giorni questo fenomeno si ripeterà? Soluzione. L eclisse contemporanea dei tre soli si può verificare solamente quando la terza luna eclissa il primo sole, la seconda luna eclissa il terzo sole, e la prima luna eclissa il secondo sole. La terza luna eclisserà il primo sole tra 52, 104, 156,..., giorni, cioè tra un numero di giorni n con n Analogamente la seconda luna eclisserà il primo sole tra un numero di giorni n con n Infine, la prima luna eclisserà il secondo sole tra un numero di giorni n Possiamo quindi concludere che l eclissi contemporanea dei tre soli si verificherà tra un numero di giorni n soluzione del sistema: n 52 0 n n 42 0 Osserviamo che n 0 = 0 è una soluzione particolare del sistema. Per il teorema cinese del resto la soluzione generale è data da n 0 modulo mcm(52, 16, 42) = La prossima eclissi totale si verificherà quindi tra 4368 giorni.

51 51 Esercizio 43 Di un intero n sappiamo che è compreso fra 1000 e 3000; inoltre sappiamo che quando è scritto in binario le sue ultime cifre sono e quando è scritto in base 3 le sue ultime cifre sono Quanto vale n? Soluzione. Sia n = (d k 1 d k 2 d ) 2 la rappresentazione binaria di n. Abbiamo allora n = d k 1 2 k 1 + d k 2 2 k d = (d k 1 2 k 6 + d k 2 2 k d 5 ) = λ cioè n mod 32 = 6. Analogamente, ragionando con la rappresentazione di m in base 3 si ottiene: n = η cioè n mod 81 = 34. Abbiamo quindi che n soddisfa al sistema { n 32 6 n (43) Utilizzando le solite tecniche otteniamo che la soluzione del sistema (43) è n , quindi n ha la forma n = k con k Z. Tra i numeri di questa forma l unico compreso fra 1000 e 3000 è quello che si ottiene per k = 1, quindi l intero n cercato è n = Esercizio 44 Sappiamo che dei messaggi sono trasmessi con il seguente meccanismo. Per prima cosa le lettere vengono trasformate in numeri usando la regola spazio 0, A 1, B 2,..., Z 26. Successivamente, ogni valore x viene trasformato con la formula x ax + b mod 27 dove a e b sono due costanti che rappresentano la chiave del sistema crittografico. Trovare a e b sapendo che la parola SI viene trasformata nella coppia di valori (13, 11). Soluzione. Dato che S 19, I 9 i dati del problema ci dicono che valgono le relazioni: { 19a + b a + b (44) Sottraendo la seconda equazione dalla prima si ottiene 10a Possiamo quindi ottenere a risolvendo l equazione: a [10] 27 = [2] 27. Dato che [10] 1 27 = [19] 27 otteniamo a = [38] 27 = [11] 27. Sostituendo a nella prima equazione otteniamo b = [13] 27 [19] 27 [11] 27 da cui b = [20] 27. La chiave è data quindi dai valori a = 11, b = 20. Esercizio 45 In un sistema di crittografia RSA, la chiave pubblica consiste nel modulo n = e dell esponente di codifica e = Inoltre scoprite che i due primi che costituiscono la fattorizzazione del modulo sono entrambi maggiori di 1000 e uno di essi scritto in binario contiene solamente la cifra 1. Calcolare l esponente di decodifica d. Soluzione. I numeri che scritti in binario contengono solamente la cifra 1 sono quelli della forma 2 k 1. La condizione che i primi siano maggiori di 1000 implica che k deve essere maggiore di 10. Procedendo per tentativi con k = 10, 11,..., si trova che = 8191 divide n. Di conseguenza abbiamo p = 8191, q = Ne segue che ϕ(n) = (p 1)(q 1) = , e l esponente di decodifica si ottiene applicando l algoritmo di Euclide esteso alla coppia ( , 1147) che fornisce il risultato d =

m = a k n k + + a 1 n + a 0 Tale scrittura si chiama rappresentazione del numero m in base n e si indica

m = a k n k + + a 1 n + a 0 Tale scrittura si chiama rappresentazione del numero m in base n e si indica G. Pareschi COMPLEMENTI ED ESEMPI SUI NUMERI INTERI. 1. Divisione con resto di numeri interi 1.1. Divisione con resto. Per evitare fraintendimenti nel caso in cui il numero a del Teorema 0.4 sia negativo,

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

Introduciamo ora un altro campo, formato da un numero finito di elementi; il campo delle classi resto modulo n, con n numero primo.

Introduciamo ora un altro campo, formato da un numero finito di elementi; il campo delle classi resto modulo n, con n numero primo. Capitolo 3 Il campo Z n 31 Introduzione Introduciamo ora un altro campo, formato da un numero finito di elementi; il campo delle classi resto modulo n, con n numero primo 32 Le classi resto Definizione

Dettagli

4 0 = 4 2 = 4 4 = 4 6 = 0.

4 0 = 4 2 = 4 4 = 4 6 = 0. Elementi di Algebra e Logica 2008. Esercizi 4. Gruppi, anelli e campi. 1. Determinare la tabella additiva e la tabella moltiplicativa di Z 6. (a) Verificare dalla tabella moltiplicativa di Z 6 che esistono

Dettagli

Monomi L insieme dei monomi

Monomi L insieme dei monomi Monomi 10 10.1 L insieme dei monomi Definizione 10.1. Un espressione letterale in cui numeri e lettere sono legati dalla sola moltiplicazione si chiama monomio. Esempio 10.1. L espressione nelle due variabili

Dettagli

Tutti i numeri qui considerati sono interi. Se si tratta in particolare di numeri Naturali (quindi non negativi) verrà specificato.

Tutti i numeri qui considerati sono interi. Se si tratta in particolare di numeri Naturali (quindi non negativi) verrà specificato. LICEO B. RUSSELL A.S. 2010/2011 DALLA TEORIA DEI NUMERI ALLE CONGRUENZE Tutti i numeri qui considerati sono interi. Se si tratta in particolare di numeri Naturali (quindi non negativi) verrà specificato.

Dettagli

nota 1. Aritmetica sui numeri interi.

nota 1. Aritmetica sui numeri interi. nota 1. Aritmetica sui numeri interi. Numeri interi. Numeri primi. L algoritmo di Euclide per il calcolo del mcd. Equazioni diofantee di primo grado. Congruenze. Il Teorema Cinese del Resto. 1 0. Numeri

Dettagli

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria.

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria. Capitolo 2 Campi 2.1 Introduzione Studiamo ora i campi. Essi sono una generalizzazione dell insieme R dei numeri reali con le operazioni di addizione e di moltiplicazione. Nel secondo paragrafo ricordiamo

Dettagli

Definizione. Siano a, b Z. Si dice che a divide b se esiste un intero c Z tale che. b = ac.

Definizione. Siano a, b Z. Si dice che a divide b se esiste un intero c Z tale che. b = ac. 0. Numeri interi. Sia Z = {..., 3, 2, 1, 0, 1, 2, 3,...} l insieme dei numeri interi e sia N = {1, 2, 3,...} il sottoinsieme dei numeri interi positivi. Sappiamo bene come addizionare, sottrarre e moltiplicare

Dettagli

nota 1. Aritmetica sui numeri interi.

nota 1. Aritmetica sui numeri interi. nota 1. Aritmetica sui numeri interi. Numeri interi. Numeri primi. L algoritmo di Euclide per il calcolo del mcd. Equazioni diofantee di primo grado. Congruenze. Il Teorema Cinese del Resto. 1 0. Numeri

Dettagli

3/10/ Divisibilità e massimo comun divisore

3/10/ Divisibilità e massimo comun divisore MCD in N e Polinomi 3/10/2013 1 Divisibilità e massimo comun divisore 1.1 Divisibilità in N In questa sezione introdurremo il concetto di divisibilità e di massimo comun divisore di due numeri naturali

Dettagli

Laboratorio teorico-pratico per la preparazione alle gare di matematica

Laboratorio teorico-pratico per la preparazione alle gare di matematica Laboratorio teorico-pratico per la preparazione alle gare di matematica Ercole Suppa Liceo Scientifico A. Einstein, Teramo e-mail: [email protected] Teramo, 10 dicembre 2014 USR Abruzzo - PLS 2014-2015,

Dettagli

Insiemi numerici. Teoria in sintesi NUMERI NATURALI

Insiemi numerici. Teoria in sintesi NUMERI NATURALI Insiemi numerici Teoria in sintesi NUMERI NATURALI Una delle prime attività matematiche che viene esercitata è il contare gli elementi di un dato insieme. I numeri con cui si conta 0,,,. sono i numeri

Dettagli

1 Relazione di congruenza in Z

1 Relazione di congruenza in Z 1 Relazione di congruenza in Z Diamo ora un esempio importante di relazione di equivalenza: la relazione di congruenza modn in Z. Definizione 1 Sia X = Z, a,b Z ed n un intero n > 1. Si dice a congruo

Dettagli

I RADICALI QUADRATICI

I RADICALI QUADRATICI I RADICALI QUADRATICI 1. Radici quadrate Definizione di radice quadrata: Si dice radice quadrata di un numero reale positivo o nullo a, e si indica con a, il numero reale positivo o nullo (se esiste) che,

Dettagli

1 Multipli di un numero

1 Multipli di un numero Multipli di un numero DEFINIZIONE. I multipli di un numero sono costituiti dall insieme dei prodotti ottenuti moltiplicando quel numero per la successione dei numeri naturali. I multipli del numero 4 costituiscono

Dettagli

Piccolo teorema di Fermat

Piccolo teorema di Fermat Piccolo teorema di Fermat Proposizione Siano x, y Z, p N, p primo. Allora (x + y) p x p + y p (mod p). Piccolo teorema di Fermat Proposizione Siano x, y Z, p N, p primo. Allora (x + y) p x p + y p (mod

Dettagli

1.2 MONOMI E OPERAZIONI CON I MONOMI

1.2 MONOMI E OPERAZIONI CON I MONOMI Matematica C Algebra. Le basi del calcolo letterale. Monomi e operazioni con i monomi. MONOMI E OPERAZIONI CON I MONOMI... L insieme dei monomi D ora in poi quando scriveremo un espressione letterale in

Dettagli

Congruenze. Alberto Abbondandolo Forte dei Marmi, 17 Novembre 2006

Congruenze. Alberto Abbondandolo Forte dei Marmi, 17 Novembre 2006 Congruenze Alberto Abbondandolo Forte dei Marmi, 17 Novembre 2006 1 Il resto nella divisione tra interi Consideriamo i numeri naturali 0, 1, 2, 3,... ed effettuiamone la divisione per 3, indicando il resto:

Dettagli

1.5 DIVISIONE TRA DUE POLINOMI

1.5 DIVISIONE TRA DUE POLINOMI Matematica C Algebra. Le basi del calcolo letterale.5 Divisione tra due polinomi..5 DIVISIONE TRA DUE POLINOMI Introduzione Ricordiamo la divisione tra due numeri, per esempio 47:4. Si tratta di trovare

Dettagli

METODI E TECNOLOGIE PER L INSEGNAMENTO DELLA MATEMATICA. Lezione n 4 2016

METODI E TECNOLOGIE PER L INSEGNAMENTO DELLA MATEMATICA. Lezione n 4 2016 METODI E TECNOLOGIE PER L INSEGNAMENTO DELLA MATEMATICA Lezione n 4 2016 GLI INSIEMI NUMERICI N Numeri naturali Z : Numeri interi Q : Numeri razionali R : Numeri reali Q A meno di isomorfismi!!! R 5 π

Dettagli

Parte Seconda. Prova di selezione culturale

Parte Seconda. Prova di selezione culturale Parte Seconda Prova di selezione culturale TEORIA DEGLI INSIEMI MATEMATICA ARITMETICA Insieme = gruppo di elementi di cui si può stabilire inequivocabilmente almeno una caratteristica in comune. Esempi:

Dettagli

623 = , 413 = , 210 = , 203 =

623 = , 413 = , 210 = , 203 = Elementi di Algebra e Logica 2008. 3. Aritmetica dei numeri interi. 1. Determinare tutti i numeri primi 100 p 120. Sol. :) :) :) 2. (i) Dimostrare che se n 2 non è primo, allora esiste un primo p che divide

Dettagli

Giovanna Carnovale. October 18, Divisibilità e massimo comun divisore

Giovanna Carnovale. October 18, Divisibilità e massimo comun divisore MCD in N e Polinomi Giovanna Carnovale October 18, 2011 1 Divisibilità e massimo comun divisore 1.1 Divisibilità in N In questa sezione introdurremo il concetto di divisibilità e di massimo comun divisore

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

ALGEBRA I: SOLUZIONI QUINTA ESERCITAZIONE 9 maggio 2011

ALGEBRA I: SOLUZIONI QUINTA ESERCITAZIONE 9 maggio 2011 ALGEBRA I: SOLUZIONI QUINTA ESERCITAZIONE 9 maggio 2011 Esercizio 1. Usando l algoritmo euclideo delle divisioni successive, calcolare massimo comune divisore e identità di Bézout per le seguenti coppie

Dettagli

Polinomi Definizioni fondamentali

Polinomi Definizioni fondamentali Polinomi. Definizioni fondamentali Definizione.. Un polinomio è un espressione algebrica letterale che consiste in una somma algebrica di monomi. Esempio.. Sono polinomi: 6a + b, 5a b + 3b, 6x 5y x, 7ab

Dettagli

LEZIONE 3. a + b + 2c + e = 1 b + d + g = 0 3b + f + 3g = 2. a b c d e f g

LEZIONE 3. a + b + 2c + e = 1 b + d + g = 0 3b + f + 3g = 2. a b c d e f g LEZIONE 3 3.. Matrici fortemente ridotte per righe. Nella precedente lezione abbiamo introdotto la nozione di soluzione di un sistema di equazioni lineari. In questa lezione ci poniamo il problema di descrivere

Dettagli

L insieme dei numeri Relativi (Z)

L insieme dei numeri Relativi (Z) L insieme dei numeri Relativi (Z) L esigenza dei numeri relativi Due precise situazioni ci spingono ad ampliare l'insieme de numeri naturali (N): una di carattere pratico, un'altra di carattere più teorico.

Dettagli

LOGARITMI. Corso di laurea: BIOLOGIA Tutor: Floris Marta; Max Artizzu PRECORSI DI MATEMATICA. L uguaglianza: a x = b

LOGARITMI. Corso di laurea: BIOLOGIA Tutor: Floris Marta; Max Artizzu PRECORSI DI MATEMATICA. L uguaglianza: a x = b Corso di laurea: BIOLOGIA Tutor: Floris Marta; Max Artizzu PRECORSI DI MATEMATICA LOGARITMI L uguaglianza: a x = b nella quale a e b rappresentano due numeri reali noti ed x un incognita, è un equazione

Dettagli

Un polinomio è un espressione algebrica data dalla somma di più monomi.

Un polinomio è un espressione algebrica data dalla somma di più monomi. 1 I polinomi 1.1 Terminologia sui polinomi Un polinomio è un espressione algebrica data dalla somma di più monomi. I termini di un polinomio sono i monomi che compaiono come addendi nel polinomio. Il termine

Dettagli

LEZIONE 10. S(C,ρ) Figura 10.1

LEZIONE 10. S(C,ρ) Figura 10.1 LEZIONE 10 10.1. Sfere nello spazio. In questa lezione studieremo alcuni oggetti geometrici non lineari, circonferenze e sfere nello spazio A 3. Poiché le proprietà delle circonferenze nel piano sono del

Dettagli

A.A CORSO DI ALGEBRA 1. PROFF. P. PIAZZA, E. SPINELLI. SOLUZIONE ESERCIZI FOGLIO 4.

A.A CORSO DI ALGEBRA 1. PROFF. P. PIAZZA, E. SPINELLI. SOLUZIONE ESERCIZI FOGLIO 4. A.A. 2015-2016. CORSO DI ALGEBRA 1. PROFF. P. PIAZZA, E. SPINELLI. SOLUZIONE ESERCIZI FOGLIO 4. Esercizio 4. 1. Data una coppia a, b N, consideriamo la loro fattorizzazione in primi. Esprimere in termini

Dettagli

INSIEME N. L'insieme dei numeri naturali (N) è l'insieme dei numeri interi e positivi.

INSIEME N. L'insieme dei numeri naturali (N) è l'insieme dei numeri interi e positivi. INSIEME N L'insieme dei numeri naturali (N) è l'insieme dei numeri interi e positivi. N = {0;1;2;3... Su tale insieme sono definite le 4 operazioni di base: l'addizione (o somma), la sottrazione, la moltiplicazione

Dettagli

Frazioni algebriche. Osserviamo che un espressione di questo tipo si ottiene talvolta quando ci si propone di ottenere il quoziente di due monomi.

Frazioni algebriche. Osserviamo che un espressione di questo tipo si ottiene talvolta quando ci si propone di ottenere il quoziente di due monomi. Frazioni algebriche 14 14.1 Definizione di frazione algebrica Diamo la seguente definizione: Definizione 14.1. Si definisce frazione algebrica un espressione del tipo A B polinomi. dove A e B sono Osserviamo

Dettagli

A.A CORSO DI ALGEBRA 1. PROFF. P. PIAZZA, E. SPINELLI. SOLUZIONE ESERCIZI FOGLIO 5.

A.A CORSO DI ALGEBRA 1. PROFF. P. PIAZZA, E. SPINELLI. SOLUZIONE ESERCIZI FOGLIO 5. A.A. 2015-2016. CORSO DI ALGEBRA 1. PROFF. P. PIAZZA, E. SPINELLI. SOLUZIONE ESERCIZI FOGLIO 5. Esercizio 5.1. Determinare le ultime tre cifre di n = 13 1625. (Suggerimento. Sfruttare il Teorema di Eulero-Fermat)

Dettagli

ALGEBRA I: SOLUZIONI TERZA ESERCITAZIONE 11 aprile 2011

ALGEBRA I: SOLUZIONI TERZA ESERCITAZIONE 11 aprile 2011 ALGEBRA I: SOLUZIONI TERZA ESERCITAZIONE 11 aprile 2011 Esercizio 1. Siano m e n due numeri interi positivi tali che m + n è un numero primo. Mostrare che m e n sono coprimi. Soluzione. Sia d = (m, n)

Dettagli

ESERCIZI IN PIÙ I NUMERI COMPLESSI

ESERCIZI IN PIÙ I NUMERI COMPLESSI ESERCIZI IN PIÙ I NUMERI COMPLESSI L equazione x x 0 non ha soluzioni nell insieme dei numeri reali; infatti, applicando la formula ridotta, si ottiene x, 3. Interpretando come numero immaginario, cioè

Dettagli

Equazioni di primo grado

Equazioni di primo grado Equazioni di primo grado 15 15.1 Identità ed equazioni Analizziamo le seguenti proposizioni: a ) cinque è uguale alla differenza tra sette e due ; b ) la somma di quattro e due è uguale a otto ; c ) il

Dettagli

LEZIONE 2. ( ) a 1 x 1 + a 2 x a n x n = b, ove a j, b R sono fissati.

LEZIONE 2. ( ) a 1 x 1 + a 2 x a n x n = b, ove a j, b R sono fissati. LEZIONE 2 2 Sistemi di equazioni lineari Definizione 2 Un equazione lineare nelle n incognite x, x 2,, x n a coefficienti reali, è un equazione della forma (2 a x + a 2 x 2 + + a n x n = b, ove a j, b

Dettagli

1. Esistono numeri della forma , ottenuti cioè ripetendo le cifre 2006 un certo numero di volte, che siano quadrati perfetti?

1. Esistono numeri della forma , ottenuti cioè ripetendo le cifre 2006 un certo numero di volte, che siano quadrati perfetti? 1 Congruenze 1. Esistono numeri della forma 200620062006...2006, ottenuti cioè ripetendo le cifre 2006 un certo numero di volte, che siano quadrati perfetti? No, in quanto tutti questi numeri sono congrui

Dettagli

Università del Piemonte Orientale

Università del Piemonte Orientale Compito di Algebra del 13 Gennaio 2009 1) Trovare l ordine di [11] 112 in Z 112. Si dica poi per quali valori di k si ha [11] k 112 [34] 112 = [31] 112. Soluzione. L ordine di [11] 112 è 12. k 12 8. 2)

Dettagli

Soluzioni verifica scritta 1A Scientifico 20/01/2009

Soluzioni verifica scritta 1A Scientifico 20/01/2009 Soluzioni verifica scritta 1A Scientifico 0/01/009 Esercizio 1 68 = 3 + ; = 11 + 0 MCD68 ; ) = ultimo resto 0) 68 68 mcm68 ; ) = = =68 11 = 68 10 + 1) = 680 + 68 = 748 MCD68; ) Esercizio Possiamo considerare

Dettagli

Prontuario degli argomenti di Algebra

Prontuario degli argomenti di Algebra Prontuario degli argomenti di Algebra NUMERI RELATIVI Un numero relativo è un numero preceduto da un segno + o - indicante la posizione rispetto ad un punto di riferimento a cui si associa il valore 0.

Dettagli

CONGRUENZE. proprietà delle congruenze: la congruenza è una relazione di equivalenza inoltre: Criteri di divisibilità

CONGRUENZE. proprietà delle congruenze: la congruenza è una relazione di equivalenza inoltre: Criteri di divisibilità CONGRUENZE I) Definizione: due numeri naturali a e b si dicono congrui modulo un numero naturale p se hanno lo stesso resto nella divisione intera per p. Si scrive a b mod p oppure a b (p) proprietà delle

Dettagli

Precorso CLEF-CLEI, esercizi di preparazione al test finale con soluzioni

Precorso CLEF-CLEI, esercizi di preparazione al test finale con soluzioni Precorso CLEF-CLEI, esercizi di preparazione al test finale con soluzioni ARITMETICA 1. Scomporre in fattori primi 2500 e 5600. Soluzione: Osserviamo che entrambi i numeri sono multipli di 100 = 2 2 5

Dettagli

Due numeri naturali non nulli a, b tali che MCD(a,b) = 1 si dicono coprimi o relativamente primi.

Due numeri naturali non nulli a, b tali che MCD(a,b) = 1 si dicono coprimi o relativamente primi. MASSIMO COMUNE DIVISORE E ALGORITMO DI EUCLIDE L algoritmo di Euclide permette di calcolare il massimo comun divisore tra due numeri, anche se questi sono molto grandi, senza aver bisogno di fattorizzarli

Dettagli

Appunti di matematica per le Scienze Sociali Parte 1

Appunti di matematica per le Scienze Sociali Parte 1 Appunti di matematica per le Scienze Sociali Parte 1 1 Equazioni 1.1 Definizioni preliminari 1.1.1 Monomi Si definisce monomio ogni prodotto indicato di fattori qualsiasi, cioè uguali o diseguali, numerici

Dettagli

Elementi di Algebra e di Matematica Discreta Strutture algebriche: anelli

Elementi di Algebra e di Matematica Discreta Strutture algebriche: anelli Elementi di Algebra e di Matematica Discreta Strutture algebriche: anelli Cristina Turrini UNIMI - 2016/2017 Cristina Turrini (UNIMI - 2016/2017) Elementi di Algebra e di Matematica Discreta 1 / 29 index

Dettagli

Capitolo 5 Campi finiti

Capitolo 5 Campi finiti Capitolo 5 Campi finiti Definizione 5.1. Un campo finito K (cioè composto da un numero finito di elementi) si dice campo di Galois. Il numero dei suoi elementi si dice ordine e si denota con K. Un campo

Dettagli

z =[a 4 a 3 a 2 a 1 a 0 ] 10

z =[a 4 a 3 a 2 a 1 a 0 ] 10 Esercizio 1. Sia z =[a 4 a 3 a 2 a 1 a 0 ] 10 un numero intero (la notazione significa che le cifre con cui rappresento z in base 10 sono a 4,..., a 0 {0, 1,..., 9}, ecioè z = a 4 10 4 + a 3 10 3 + a 2

Dettagli

Moltiplicazione. Divisione. Multipli e divisori

Moltiplicazione. Divisione. Multipli e divisori Addizione Sottrazione Potenze Moltiplicazione Divisione Multipli e divisori LE QUATTRO OPERAZIONI Una operazione aritmetica è quel procedimento che fa corrispondere ad una coppia ordinata di numeri (termini

Dettagli

SCOMPOSIZIONE IN FATTORI PRIMI:

SCOMPOSIZIONE IN FATTORI PRIMI: SCOMPOSIZIONE IN FATTORI PRIMI: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229

Dettagli

CORSO ZERO DI MATEMATICA

CORSO ZERO DI MATEMATICA UNIVERSITÀ DEGLI STUDI DI PALERMO FACOLTÀ DI ARCHITETTURA CORSO ZERO DI MATEMATICA CALCOLO LETTERALE Dr. Erasmo Modica [email protected] MONOMI In una formula si dicono variabili le lettere alle quali può

Dettagli

Il Sistema di numerazione decimale

Il Sistema di numerazione decimale Il Sistema di numerazione decimale Il NUMERO è un oggetto astratto, rappresentato da un simbolo (o cifra) ed è usato per contare e misurare. I numeri usati per contare, 0,1,2,3,4,5,. sono detti NUMERI

Dettagli

Numeri e operazioni su di essi

Numeri e operazioni su di essi Numeri e operazioni su di essi Paolo Montanari Appunti di Matematica Numeri 1 Classificazione dei numeri Il primo obiettivo che ci si pone è quello di classificare i numeri, cioè conoscere i differenti

Dettagli

Esercizi svolti di aritmetica

Esercizi svolti di aritmetica 1 Liceo Carducci Volterra - Classi 1A, 1B Scientifico - Francesco Daddi - 15 gennaio 29 Esercizi svolti di aritmetica Esercizio 1. Dimostrare che il quadrato di un numero intero che finisce per 25 finisce

Dettagli

Soluzioni della verifica scritta 1 B Scientifico 24/01/2009

Soluzioni della verifica scritta 1 B Scientifico 24/01/2009 Soluzioni della verifica scritta 1 B Scientifico 4/01/009 Esercizio 1. Il polinomio x +x 4 5 xy + y non èordinatoné rispetto a x nè rispetto a y. E completo rispetto a y ma non rispetto a x. Nonè omogeneo.

Dettagli

Note sull algoritmo di Gauss

Note sull algoritmo di Gauss Note sull algoritmo di Gauss 29 settembre 2009 Generalità Un sistema lineare di m equazioni in n incognite x,..., x n è un espressione del tipo: a x + a 2 x 2 + + a n x n = b a 2 x + a 22 x 2 + + a 2n

Dettagli

Monomi. 9.1 L insieme dei monomi

Monomi. 9.1 L insieme dei monomi Monomi 9 9.1 L insieme dei monomi D ora in poi quando scriveremo un espressione letterale in cui compare l operazione di moltiplicazione, tralasceremo il puntino fin qui usato per evidenziare l operazione.

Dettagli

Le equazioni lineari

Le equazioni lineari Perchè bisogna saper risolvere delle equazioni? Perché le equazioni servono a risolvere dei problemi! Le equazioni lineari Un problema è una proposizione che richiede di determinare i valori di alcune

Dettagli

Teoria dei numeri 2. Alberto Saracco. Università di Parma Udine, 18 ottobre 2015

Teoria dei numeri 2. Alberto Saracco. Università di Parma Udine, 18 ottobre 2015 Teoria dei numeri 2 Alberto Saracco Università di Parma [email protected] Udine, 18 ottobre 2015 Alberto Saracco Teoria dei numeri Udine, 18 ottobre 2015 1 / 16 Esercizio Es. 12 gara distrettuale

Dettagli

ALGEBRA 1 Secondo esonero 15 Giugno 2011 soluzioni

ALGEBRA 1 Secondo esonero 15 Giugno 2011 soluzioni ALGEBRA 1 Secondo esonero 15 Giugno 2011 soluzioni (1) Verificare che l anello quoziente Z 5 [x]/(x 3 2) possiede divisori dello zero, e determinare tutti i suoi ideali non banali. Soluzione: Il polinomio

Dettagli

ALGEBRA C. MALVENUTO

ALGEBRA C. MALVENUTO ALGEBRA PRIMO ESONERO CANALE A-L 18 NOVEMBRE 011 C. MALVENUTO Esercizio 1. (8 punti Sia H la famiglia di tutti i sottogruppi del gruppo additivo Z 0 delle classi resto modulo 0. 1. Elencare tutti gli elementi

Dettagli

= < < < < < Matematica 1

= < < < < < Matematica  1 NUMERI NATURALI N I numeri naturali sono: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,... L insieme dei numeri naturali è indicato con la lettera. Si ha cioè: N= 0,1,2,3,4,5,6,7,.... L insieme dei naturali privato

Dettagli

ax 1 + bx 2 + c = 0, r : 2x 1 3x 2 + 1 = 0.

ax 1 + bx 2 + c = 0, r : 2x 1 3x 2 + 1 = 0. . Rette in R ; circonferenze. In questo paragrafo studiamo le rette e le circonferenze in R. Ci sono due modi per descrivere una retta in R : mediante una equazione cartesiana oppure mediante una equazione

Dettagli

PREPARAZIONE ALLE GARE DI MATEMATICA - CORSO BASE

PREPARAZIONE ALLE GARE DI MATEMATICA - CORSO BASE Liceo Scientifico Gullace PREPARAZIONE ALLE GARE DI MATEMATICA - CORSO BASE Aritmetica 014-15 1 Lezione 1 DIVISIBILITÀ, PRIMI E FATTORIZZAZIONE Definizioni DIVISIBILITÀ': dati due interi a e b, diciamo

Dettagli

1 IL LINGUAGGIO MATEMATICO

1 IL LINGUAGGIO MATEMATICO 1 IL LINGUAGGIO MATEMATICO Il linguaggio matematico moderno è basato su due concetti fondamentali: la teoria degli insiemi e la logica delle proposizioni. La teoria degli insiemi ci assicura che gli oggetti

Dettagli

CORSO ZERO DI MATEMATICA

CORSO ZERO DI MATEMATICA UNIVERSITÀ DEGLI STUDI DI PALERMO FACOLTÀ DI ARCHITETTURA CORSO ZERO DI MATEMATICA RADICALI Dr. Erasmo Modica [email protected] LE RADICI Abbiamo visto che l insieme dei numeri reali è costituito da tutti

Dettagli

L insieme dei numeri naturali N Prof. Walter Pugliese

L insieme dei numeri naturali N Prof. Walter Pugliese L insieme dei numeri naturali N Prof. Walter Pugliese Che cosa sono i numeri naturali I numeri naturali sono: 0,1,2,3,4,5,6,7,8,9,10, Sono chiamati così perché sono stati i primi numeri che abbiamo conosciuto,

Dettagli

CORSO ZERO DI MATEMATICA per Ing. Chimica e Ing. delle Telecomunicazioni MONOMI E POLINOMI Prof. Erasmo Modica

CORSO ZERO DI MATEMATICA per Ing. Chimica e Ing. delle Telecomunicazioni MONOMI E POLINOMI Prof. Erasmo Modica CORSO ZERO DI MATEMATICA per Ing. Chimica e Ing. delle Telecomunicazioni MONOMI E POLINOMI Prof. Erasmo Modica [email protected] MONOMI In una formula si dicono variabili le lettere alle quali può essere

Dettagli