Discussione:
Operazione inversa mod 4
(troppo vecchio per rispondere)
Pippo
2023-08-27 09:35:17 UTC
Permalink
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!
Pippo
2023-08-27 09:43:27 UTC
Permalink
(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].
(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?
Rettifica:
val -> è un valore intero noto che può variare nell'intervallo [0,12];

Ciao e grazie mille!
Pippo
2023-08-27 11:00:22 UTC
Permalink
Post by Pippo
(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].
(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?
val -> è un valore intero noto che può variare nell'intervallo [0,12];
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!
Maurizio Frigeni
2023-08-27 14:50:08 UTC
Permalink
Post by Pippo
(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 + 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.
Pippo
2023-09-03 11:47:32 UTC
Permalink
Post by Maurizio Frigeni
Post by Pippo
(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 + 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.
OK, grazie, funziona!

Mi puoi spiegare quale è il ragionamento da fare per arrivare alla formula che hai suggerito?

Ciao e grazie mille!
brune...@gmail.com
2023-08-27 23:05:52 UTC
Permalink
(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].
(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!
E' piuttosto semplice: x = (resto - val) mod 4.

Alex
Pippo
2023-09-03 11:47:08 UTC
Permalink
Post by ***@gmail.com
(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].
(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!
E' piuttosto semplice: x = (resto - val) mod 4.
OK, grazie, funziona!

Mi puoi spiegare quale è il ragionamento da fare per arrivare alla formula che hai suggerito?

Ciao e grazie mille!
brune...@gmail.com
2023-09-04 15:38:20 UTC
Permalink
Post by Pippo
Post by ***@gmail.com
(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].
(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!
E' piuttosto semplice: x = (resto - val) mod 4.
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
Pippo
2023-09-08 17:41:42 UTC
Permalink
Post by ***@gmail.com
Post by Pippo
Post by ***@gmail.com
(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].
(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!
E' piuttosto semplice: x = (resto - val) mod 4.
OK, grazie, funziona!
Mi puoi spiegare quale è il ragionamento da fare per arrivare alla formula che hai suggerito?
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.
Ti ringrazio, ma è troppo complessa la tua spiegazione per le mie conoscenze: ne esiste una più semplice? ;-)

Ciao e grazie mille!
brune...@gmail.com
2023-09-08 23:39:09 UTC
Permalink
Post by Pippo
Ti ringrazio, ma è troppo complessa la tua spiegazione per le mie conoscenze: ne esiste una più semplice? ;-)
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
Pippo
2023-09-09 08:46:51 UTC
Permalink
Post by ***@gmail.com
Post by Pippo
Ti ringrazio, ma è troppo complessa la tua spiegazione per le mie conoscenze: ne esiste una più semplice? ;-)
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).
(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... ! ;-)

Continua a leggere su narkive:
Loading...