Matematica Discreta - Matematica e Informatica

annuncio pubblicitario
Matematica Discreta
Lezione del giorno 20 novembre 2009
L’efficienza dell’algoritmo “ingenuo” illustrato nella lezione precedenza (per testare se un numero
naturale a è primo) può essere aumentata con la seguente osservazione: se un numero naturale a>1
non è primo, allora a ha certamente almeno un divisore non banale che sia  a (infatti se a non è
primo, allora a ha un divisore non banale b1, ba, ed esiste un numero naturale c tale che a=bc,
con c1, ca: da ciò si deduce che almeno uno dei divisori b,c è  a perché se fosse per assurdo
b> a , c> a si avrebbe bc>( a )2=a contraddizione).
Dunque per testare se a è primo, basta eseguire le divisioni di a per i valori 2,3,….. che siano  a :
se nessuno di tali valori è un divisore di a allora si può concludere con certezza che a è primo,
operando un numero di divisioni molto inferiore.
Per esempio, se a=1009, invece di effettuare 1007 divisioni si possono effettuare le 30 divisioni di
a=1009 per i numeri 2,3,…..,31 (tenendo conto che 1009 è circa 31,76), e poiché ognuna di esse
ha resto diverso da 0 si può concludere che a=1009 non ha divisori non banali ed è dunque primo.
Anche questo test “ingenuo” migliorato ha però tempi di calcolo troppo lunghi nel caso di numeri
molto “grandi”: per esempio se l’ordine di grandezza del numero a da testare è circa 1040 (1 seguito
da 40 zeri in base 10), l’ordine di grandezza di a è circa 1020, e se un computer potesse eseguire 1
miliardo di divisioni al secondo, il numero di secondi impiegati nell’esecuzione dell’algoritmo
sarebbe dell’ordine di grandezza di circa 1011 (oltre 3000 anni…….).
Per questo sono stati introdotti test molto più efficienti per verificare se un numero naturale è primo,
ma questo è un argomento che esula dagli scopi del nostro corso.
Basti osservare che per testare il numero primo più grande attualmente conosciuto (citato nella
lezione precedente e con 13 milioni di cifre in base 10) è bastato circa 1 mese di calcoli su un
computer dotato di un processore con una velocità di 3 Ghz.
Fattorizzazione in primi
Dimostreremo che i numeri primi sono come i “mattoni” elementari con cui si possono “costruire “
tutti i numeri naturali >1, nel senso che ogni naturale >1 è prodotto di numeri primi e tale
rappresentazione è sotto certi aspetti “unica”. Ricordiamo che per convenzione il termine
“prodotto” si intende al limite anche con 1 solo fattore.
Premettiamo un risultato preliminare sui numeri primi:
Teorema.
Se a è un numero primo e se a é divisore del prodotto di 2 numeri naturali b,c:
a (bc)
allora a è divisore di almeno uno dei fattori b,c.
Dimostrazione:
Per assurdo supponiamo che a non sia divisore né di b né di c.
Essendo a (bc) esiste un numero naturale t tale che at=bc.
Poniamo d=mcd(a,b). Essendo da, db ed essendo a numero primo, si ha d=1 oppure d=a. Ma non
può essere d=a (perché d è divisore di b mentre a non lo è) dunque è d=1. Per una proprietà del
mcd(a,b), esistono 2 interi relativi x, y tali che d=1=ax+by. Moltiplicando ambo i membri per c e
tenendo conto che at=bc si ha:
c=acx+bcy=acx+aty=a(cx+ty)
e si ottiene ac (contraddizione).
Dimostreremo ora un risultato fondamentale dell’aritmetica:
Teorema di fattorizzazione unica. Ogni numero naturale a>1 è fattorizzabile come prodotto di
numeri primi (al limite con 1 solo fattore) e tale fattorizzazione è unica (a meno dell’ordine dei
fattori), nel senso che, se sono date 2 fattorizzazioni dello stesso a in prodotto di numeri primi:
a=p1p2….pr=q1q2…qs (dove tutti i pi e i qj sono numeri primi)
allora:
1) r=s (il numero dei fattori primi nelle 2 fattorizzazioni è uguale)
2) riordinando opportunamente i fattori, si ha p1=q1, p2=q2, …., pr=qr (cioè i fattori coincidono
ordinatamente nelle due fattorizzazioni)
Dimostrazione:
Esistenza della fattorizzazione:
Supponiamo per assurdo che esistano numeri naturali non fattorizzabili nel prodotto di numeri
primi, e costruiamo l’insieme S di tali numeri:
S = {x / xN, x>1, x non é fattorizzabile nel prodotto di numeri primi}
L’insieme non vuoto S, per l’Assioma del minimo, contiene un elemento minimo sS: sarà sN,
s>1, s non fattorizzabile nel prodotto di numeri primi. In particolare s non è un numero primo
(altrimenti s sarebbe fattorizzabile nel prodotto di numeri primi, con 1 solo fattore) quindi s ha un
divisore non banale b, con b1,bs. Esiste allora un naturale c tale che s=bc, e ovviamente anche
c1,cs. In totale si ha 1<b<s, 1<c<s, ed essendo s il minimo in S, si deduce che b,cS, dunque b,c
sono entrambi fattorizzabili nel prodotto di numeri primi, ma allora anche a=bc sarebbe
fattorizzabile nel prodotto di numeri primi, contraddizione.
Nella prossima lezione dimostreremo l’unicità della fattorizzazione.
Scarica