ESERCIZI PER CASA – PRIMA E SECONDA SETTIMANA Universit

ESERCIZI PER CASA – PRIMA E SECONDA SETTIMANA
Università degli Studi di Trento – Corso di Laurea in Matematica
Corso di Teoria dei Numeri e Crittografia – A.A. 2008/09
25 febbraio 2009
Numeri scritti in basi diverse. Convertite (50664)7 (dalla base 7) in base 10. (Naturalmente potete aiutarvi con una semplice calcolatrice.)
Convertite 13539 (o meglio, (13539)10 ) dalla base 10 alla base 7.
Convertite il numero (1, 0201)3 in base 10, prima in forma esatta, cioè come frazione,
e poi in un numero decimale periodico.
Convertite il numero decimale (13, 15)10 in binario (cioè in base 2), e poi in esadecimale
(cioè in base 16), con la precisione di almeno dieci bit dopo la virgola; oppure, ancor
meglio, in forma periodica esatta (con parte intera, antiperiodo e periodo).
Numeri periodici.
(1) Giustificate con la teoria il periodo minimo (che in terminologia scolastica significa
“la lunghezza del periodo”) dei numeri periodici ottenuti nell’esercizio precedente.
(2) Sia a un intero non multiplo di 17; determinate il periodo minimo di a/17 nella
sua espansione decimale, in quella binaria, ed in quella esadecimale.
(3) Trovate tutti i primi p tali che l’espansione binaria di 1/p abbia 12 come periodo (non necessariamente minimo); trovate quindi i primi p tali che l’espansione
binaria di 1/p abbia 12 come periodo minimo.
(4) Trovate un intero n (non necessariamente primo!) tale che l’espansione decimale
di 1/n abbia periodo minimo 147.
(5) Per quali interi positivi n sono finite sia l’espansione decimale che l’espansione
esadecimale di 1/n?
Somme di cubi. Stimate il tempo necessario a calcolare ciascuno dei due membri
dell’uguaglianza (facilmente dimostrabile per induzione su n)
2
n
X
n(n + 1)
3
i =
.
2
i=1
Potenze. Usando la notazione O maiuscola, stimate in funzione di n il numero di operazioni bit necessarie a calcolare 3n (in binario). Date un’analoga stima per il calcolo di
nn . Date una stima per il calcolo di mn , stavolta in funzione sia di m che di n.
Moltiplicazioni e riduzioni modulo m. Siano dati tre interi non negativi a ≥ b ed
m. Date delle stime temporali (dipendenti da a e m, nella notazione O maiuscola) per i
seguenti due algoritmi: (1) moltiplicare a per b, e quindi ridurre il risultato modulo m;
(2) ridurre a e b modulo m, poi moltiplicarli fra loro, ed infine (eventualmente) ridurre
il risultato modulo m. Dopo aver semplificato le stime ottenute assumendo che a ≥ m
(il caso interessante), dire quale algoritmo conviene usare (soprattutto per a molto piú
grande di m) e perché.
1
2
ESERCIZI PER CASA – PRIMA E SECONDA SETTIMANA
Sistemi di congruenze. Risolvete (cioè trovate tutte le soluzioni) della congruenza
25 x ≡ 49 (mod 97), e di ciascuno dei seguenti sistemi di congruenze:



x
≡
11
(mod
9)
x
≡
8
(mod
9)



 x ≡ 11 (mod 15)


x ≡ 17 (mod 21)
x ≡ 13 (mod 11)
x ≡ 10 (mod 11)



 x ≡ 31 (mod 35)
 x ≡ 9 (mod 13)
 x ≡ 12 (mod 13)
(notare che per l’ultimo sistema bisogna spezzare ciascuna congruenza in due rispetto a
moduli coprimi, e si fa grazie al Teorema Cinese dei resti, dopodiché. . .).
MCM. Calcolate il minimo comune multiplo degli interi da 1 a 10. Ora trovate il
minimo comune multiplo degli interi da 1 a 100; di quest’ultimo basta che esibiate la
scomposizione in fattori primi, non serve che ne troviate il valore numerico.
Complessità del crivello di Eratostene. Ricordo brevemente come funziona. Serve
per determinare tutti i primi fino ad un limite fissato n. Si parte con una tabella contenente i numeri naturali fino ad n. Poi se ne cancellano tutti i multipli di 2 (cioè i numeri
pari), quindi quelli di 3, poi
√ quelli di 5, e cosı́ via. Una volta cancellati tutti i multipli dei
primi che non superano n (perché?), nella tabella rimangono solo 1 ed i numeri primi
(che non superano n). (Notate
che non è necessario avere a disposizione una tabella dei
√
primi che non superano n, perché il crivello stesso la produce man mano.)
Ci si può ragionevolmente aspettare che il crivello di Eratostene sia meno efficiente
del metodo delle divisioni per tentativi se utilizzato per determinare se un numero assegnato è primo, ma che possa essere piú efficiente se si vogliono ottenere tutti i primi che
non superano n. Dimostrate quest’ultima affermazione. Piú precisamente, dimostrate
che il tempo per l’esecuzione del crivello di Eratostene cosı́ come descritto (trascurando
questioni di memoria e, piú in generale, come amministrare una tabella cosı́ lunga), è
O(n log2 n), mentre il tempo per ottenere una tabella tutti i primi che non superano n
controllandoli uno ad uno mediante le divisioni per tentativi è O(n3/2 log n).
Fattorizzazione nel caso di fattori fra loro vicini. Scomporre in fattori primi l’intero n = 133457, usando l’informazione che è un prodotto pq di due fattori (non necessariamente primi in generale, anche se lo sono in questo caso specifico) “non troppo
diversi fra loro” (diciamo che vale 300 < q ≤ p < 450 in questo caso), con la seguente
strategia: poiché p e q sono entrambi dispari, essi si possono scrivere come s − t e s + t
rispettivamente, per certi interi s e t (s = p+q
e t = p−q
); dunque bisogna riuscire a
2
2
√
2
2
scrivere n come n = s − t , ed s dovrebbe essere di poco superiore a n = 365, 3 . . .,
poiché
√ p e q sono vicini (in effetti, con l’informazione che abbiamo, t < 75 e quindi
s < n + 752 = 372, 9 . . .); quindi la strategia consiste nel calcolare successivi valori di
s2 − n, cioè 3662 − n, 3672 − n, . . ., finché non otteniamo un quadrato perfetto t2 ; per
quanto visto ce la caveremo con meno di una decina di prove.
Nota: Questo esercizio dà una dimostrazione pratica di come gli interi che si fattorizzano in
un prodotto di fattori (eventualmente anche non primi) “non troppo diversi fra loro” (il che in
generale non si saprà a priori, naturalmente) siano relativamente facili da fattorizzare. Bisogna
tener conto di questo nella scelta dei primi p e q del metodo RSA.
Variante: fattorizzate 939149, sapendo che esso è il prodotto di due primi di cui uno
è molto vicino al quintuplo dell’altro. Una volta che vi sieti portati nella situazione
precedente, dovreste riuscirci al primo colpo.