Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Operazione inversa mod 4

64 views
Skip to first unread message

Pippo

unread,
Aug 27, 2023, 5:35:19 AM8/27/23
to
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

unread,
Aug 27, 2023, 5:43:29 AM8/27/23
to
Rettifica:
val -> è un valore intero noto che può variare nell'intervallo [0,12];

Ciao e grazie mille!

Pippo

unread,
Aug 27, 2023, 7:00:24 AM8/27/23
to
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

unread,
Aug 27, 2023, 10:50:11 AM8/27/23
to
Pippo <ghost...@tin.it> wrote:

> 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 + 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.

brune...@gmail.com

unread,
Aug 27, 2023, 7:05:54 PM8/27/23
to
E' piuttosto semplice: x = (resto - val) mod 4.

Alex

Pippo

unread,
Sep 3, 2023, 7:47:11 AM9/3/23
to
OK, grazie, funziona!

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

Ciao e grazie mille!

Pippo

unread,
Sep 3, 2023, 7:47:35 AM9/3/23
to

brune...@gmail.com

unread,
Sep 4, 2023, 11:38:21 AM9/4/23
to
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

unread,
Sep 8, 2023, 1:41:44 PM9/8/23
to
Il giorno lunedì 4 settembre 2023 alle 17:38:21 UTC+2 brune...@gmail.com ha scritto:
> On Sunday, September 3, 2023 at 1:47:11 PM UTC+2, Pippo wrote:
> > Il giorno lunedì 28 agosto 2023 alle 01:05:54 UTC+2 brune...@gmail.com ha scritto:
> > > On Sunday, August 27, 2023 at 11:35:19 AM UTC+2, Pippo wrote:
> > > > 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!
> >
> > > 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

unread,
Sep 8, 2023, 7:39:11 PM9/8/23
to
On Friday, September 8, 2023 at 7:41:44 PM UTC+2, Pippo wrote:

> 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

unread,
Sep 9, 2023, 4:46:53 AM9/9/23
to
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... ! ;-)


0 new messages