Community
 
Aggiungi lista preferiti Aggiungi lista nera Invia ad un amico
------------------
Crea
Profilo
Blog
Video
Sito
Foto
Amici
   
 
 
 
Community
 
Aggiungi lista preferiti Aggiungi lista nera Invia ad un amico
------------------
Crea
Profilo
Blog
Video
Sito
Foto
Amici
   
 
 

sei sul sito di Giovanni Fraterno

4) Come si inverte una funzione modulare
 
Community
 
Aggiungi lista preferiti Aggiungi lista nera Invia ad un amico
------------------
Crea
Profilo
Blog
Video
Sito
Foto
Amici
   
 
 
Se E ed m sono primi fra loro, la conoscenza della forma esplicita di una data funzione modulare C=EP(mod m), rende sempre possibile la determinazione della funzione inversa P=DC(mod m).

Con riferimento intanto alla notazione X(mod m)=R, con D pari a una costante, è:

- DX(mod m)=DR(mod m), e cioè: una data uguaglianza modulare rimane tale anche se si moltiplicano entrambi i membri per una stessa quantità

- (D+X)(mod m)=(D+R)(mod m) e cioè: una data uguaglianza modulare rimane tale anche se si aggiunge ad entrambi i membri una stessa quantità.

Applicando infatti rispettivamente le proprietà sul resto di un prodotto e sul resto di una somma è:

- DX(mod m)=D(mod m) X(mod m)=D(mod m) R=DR(mod m)

- (D+X)(mod m)=D(mod m)+X(mod m)=D(mod m)+R=
(D+R)(mod m).

Consideriamo allora la funzione modulare C=EP(mod m).

Per quanto appena detto sono dunque giustificati i passaggi:

C=EP(mod m)
DC(mod m)=DEP(mod m)=P(DE(mod m)).

Basta dunque cercare una D tale che: DE(mod m)=1, perchè così la nostra funzione inversa vale:
P=DC(mod m).

E' importante sottolineare che D esiste solo se E ed m sono primi fra loro.

Vediamo qualche esempio.

Se consideriamo la funzione vista nel precedente paragrafo, ovvero C=4P(mod 7). Essendo 4 e 7 primi fra loro, per poterla invertire basta trovare una D tale che: 4D(mod 7)=1.

Come può essere facilmente verificato è D=2, per cui è:
P=2C(mod 7).

Consideriamo ora la funzione C=11P(mod 10800).

Essendo 11 e 10800 primi fra loro, per poterla invertire basta trovare una D tale che: 11D(mod 10800)=1.

Come può essere facilmente verificato è D=5891, per cui è:
P=5891C(mod 10800).

Nel primo caso la determinazione di D è intuitiva ed immediata.

Nel secondo caso no.

Esiste un algoritmo che consenta di giungere alla determinazione di D con tempi di elaborazione ragionevoli, anche quando il modulo ha un enorme numero di cifre ?

La risposta è "Si".

Sappiamo che D, numero naturale, deve sottostare alla condizione DE(mod m)=1.

Se indichiamo con QUOZ il risultato della divisione fra DE e m, dovendo essere: DE=m QUOZ+1, possiamo implementare un'iterazione con QUOZ che avanza a partire da 1, arrestando l'algoritmo non appena il risultato (e non il resto) della divisione:

è un numero naturale, numero che è poi D.

Per la funzione sopra considerata, ovvero C=11P(mod 10800), l'algoritmo si arresta dopo appena 6 iterazioni. Con QUOZ=6 è dunque D=5891.



utenti in questo momento connessi alla rete di siti web di Giovanni Fraterno: