Newsgroup: it.hobby.enigmi
Titolo: Operazione inversa mod 4

Ho la seguente espressione:
 
(val+x ) mod  4 = resto,
 
dove
 
val -> è un valore intero noto che può variare nell'intervallo [0,15];
 
x -> è un valore intero incognito che può variare nell'intervallo [0,3];
 
resto ->  è un valore intero noto che può variare nell'intervallo [0,3].
 
Se ho ad esempio la seguente espressione:
 
(2+x) mod 4 = 1
 
per trovare la x NON vi è una formula diretta ma  debbo procedere per tentativi, provando con tutti i valori possibili di x nell'intervallo [0,3]?
 
(2+0) mod 4 = 2;
 
(2+1) mod 4 = 3;
 
(2+2) mod 4 = 0;
 
(2+3) mod 4 = 1,
 
quindi il valore della x in tal caso sarà pari a 3.
 
Esiste un modo più rapido per questo tipo di calcolo?
 
Ciao e grazie mille!
 
 
 
 
 
 
 


Rettifica:
val -> è un valore intero noto che può variare nell'intervallo [0,12];
 
Ciao e grazie mille!


Specifico che sono calcoli che debbo fare mentalmente per un effetto di magia con le carte, quindi, nel predetto esempio avrei dovuto fare mentalmente 4 passaggi per arrivare al risultato cercato.
 
Altro esempio :
 
(8+x) mod 4 = 1,
 
mentalmente mi debbo fermare al secondo passaggio:
 
(8+0)mod 4 = 0;
 
(8+1)mod 4 = 1 (OK);
 
(8+2)mod 4 = 2;
 
(8+3 )mod 4 = 3.
 
Ciao e grazie mille!
 
 
 
 

 [0,3]?
 
2 + x = 1 (mod 4)
 
x = -1 (mod 4)
 
=>  x = -1, x = 3, x = 7, x = 11 ...
 
A te interessa solo il secondo risultato.
 
In pratica, aggiungi (o togli) 4 fin quando ottieni un risultato fra 0 e
3.
 
M.


E' piuttosto semplice: x = (resto - val) mod 4.
 
Alex


OK, grazie, funziona!
 
Mi puoi spiegare quale è il ragionamento da fare per arrivare alla formula che hai suggerito?
 
Ciao e grazie mille!





I moduli possiedono l'invarianza per l'addizione: sommando o sottraendo la stessa quantità da due numeri congruenti (cioè tali per cui i loro moduli per un dato valore sono uguali), questi rimangono congruenti. 
Pertanto, sottraendo val da entrambi i valori resta la congruenza.
 
cfr. 
https://it.wikipedia.org/wiki/Aritmetica_modulare
 
 
Alex
 
 
 

 Pertanto, sottraendo val da entrambi i valori resta la congruenza. 
 
Ti ringrazio, ma è troppo complessa la tua spiegazione per le mie conoscenze: ne esiste una più semplice? ;-)
 
Ciao e grazie mille!

 Ciao e grazie mille!
 
Se A modulo 4 è uguale a B modulo 4, allora anche (A+qualunque valore) modulo 4 è uguale a (B+lo stesso valore) modulo 4. Questa è una proprietà dei moduli.
Esempio: 13 modulo 4 (che fa 1) = 1; aggiungiamo 5 a entrambi i membri: (13+5) modulo 4 (che fa 2) = (1+5) modulo 4 (che fa ancora 2). Quindi funziona.
 
Nel tuo caso si ha l'espressione che hai indicato: (val+x) modulo 4 = resto modulo 4; il resto è per definizione modulo 4 perché va da 0 a 3 (l'hai indicato tu).
 
Aggiungiamo "-val" a entrambi i termini:
 
(val+x-val) modulo 4 = (resto-val) modulo 4; questo è possibile per la proprietà di cui sopra.
 
Semplifichiamo togliendo val-val (che è uguale a 0 ovviamente): x modulo 4 = (resto-val) modulo 4
Siccome x va da 0 a 3 (l'hai indicato tu) è già modulo 4, quindi semplichiamo ancora: x = (resto-val) modulo 4.
 
Alex


OK, adesso è molto più chiaro.. la tua spiegazione mi risultava ostica perché NON avevo considerato che:
 
x= x modulo 4  e resto = resto modulo 4, con "x" e "resto" interi nell'intervallo [0,3] ... nella formula finale: 
 
x = (resto-val) modulo 4,  
 
se "resto-val" è negativo ( e si verifica spesso, considerando che "val" è un intero che può variare nell'intervallo [0,12] ), gli aggiungo +4 fino ad ottenere il primo numero positivo o pari a zero nell'intervallo [0,3].
 
Ciao e grazie 1000... ! ;-)