Perché 2 mod 4 = 2?


150

Sono imbarazzato nel porre una domanda così semplice. Il mio mandato non inizia per altre due settimane, quindi non posso chiedere a un professore e la suspense mi ucciderebbe.

Perché 2 mod 4 = 2?


45
A causa 2 = 0 * 4 + 2.
p4bl0,


1
In x / y i risultati sono costituiti da una parte intera e una parte di frazione. Se moltiplichi la parte della frazione con il divisore, otterrai il resto. E x = Parte intera y + Resto (cioè parte della frazione y). In questo caso, la parte
intera

76
felice di aver avuto il coraggio di porre quella domanda.
pavimenta il

il modulo è molto lontano per essere uguale alla divisione di due numeri.
Holex,

Risposte:


151

Mod significa solo che prendi il resto dopo aver eseguito la divisione. Dato che 4 va in 2 zero volte, si finisce con un resto di 2.


95

Modulo è il resto, non divisione.

2 / 4 = 0R2
2 % 4 = 2

Il segno %viene spesso utilizzato per l'operatore modulo, al posto della parola mod.

Per x % 4, ottieni la seguente tabella (per 1-10)

 x x%4
------
 1  1
 2  2
 3  3
 4  0
 5  1
 6  2
 7  3
 8  0
 9  1
10  2

18

Modulo (mod,%) è l'operatore Remainder.

2%2 = 0 (2/2 = 1 remainder 0)
1%2 = 1 (1/2 = 0 remainder 1)
4%2 = 0 (4/2 = 2 remainder 0)
5%2 = 1 (5/2 = 2 remainder 1)

3
E spiegazione "verbosa": 2 = 4 · 0 + 2 ;-)
Michael Krelin - hacker

13

Molto più facile se usi le banane e un gruppo di persone.

Supponi di avere 1 banana e un gruppo di 6 persone, questo che esprimeresti: 1 mod 6/ 1 % 6/ 1 modulo 6.

Hai bisogno di 6 banane per ogni persona del gruppo per essere ben nutrita e felice.

Quindi, se hai 1 banana e devi condividerla con 6 persone, ma puoi condividere solo se hai 1 banana per ogni membro del gruppo, ovvero 6 persone, avrai 1 banana (resto, non condiviso su nessuno in gruppo), lo stesso vale per 2 banane. Quindi avrai 2 banane come resto (nulla è condiviso).

Ma quando ottieni 6 banane, dovresti essere felice, perché poi c'è 1 banana per ogni membro in un gruppo di 6 persone, e il resto è 0 o nessuna banana rimasta quando hai condiviso tutte e 6 le banane su 6 persone.

Ora, per 7 banane e 6 persone in gruppo, allora avrai 7 mod 6 = 1 , questo perché hai dato a 6 persone 1 banana ciascuna e 1 banana è il resto.

Per 12 mod 6o 12 banane condivise su 6 persone, ognuna avrà due banane e il resto sarà quindi 0.



8

Anche io ero confuso su questo, solo pochi minuti fa. Poi ho fatto la divisione a lungo su un pezzo di carta e ha avuto senso:

  • 4 va in 2 zero volte.
  • 4 volte 0 è 0.
  • Metti quello zero sotto il 2 e sottrai che lascia 2.

Questo è quanto il computer prenderà questo problema. Il computer si ferma qui e restituisce il 2, il che ha senso poiché è quello che "%" (mod) chiede.

Siamo stati addestrati a inserire il decimale e andare avanti, motivo per cui all'inizio può essere controintuitivo.


7

Qualcuno mi ha contattato e mi ha chiesto di spiegare in modo più dettagliato la mia risposta nel commento della domanda. Quindi ecco cosa ho risposto a quella persona nel caso in cui possa aiutare chiunque altro:

L'operazione modulo ti dà il resto della disattivazione euclidea (che funziona solo con numeri interi, non numeri reali). Se hai A tale che A = B * C + D (con D <B), il quoziente della divisione euclidea di A per B è C, e il resto è D. Se dividi 2 per 4, il quoziente è 0 e il resto è 2.

Supponiamo di avere oggetti A (che non puoi tagliare). E vuoi distribuire la stessa quantità di quegli oggetti a B persone. Finché hai più di oggetti B, dai a ciascuno di essi 1 e ripeti. Quando ti rimangono meno di B oggetti, ti fermi e mantieni gli oggetti rimanenti. Il numero di volte in cui hai ripetuto l'operazione, chiamiamo quel numero C, è il quoziente. Il numero di oggetti che conservi alla fine, chiamiamolo D, è il resto.

Se hai 2 oggetti e 4 persone. Hai già meno di 4 oggetti. Quindi ogni persona ottiene 0 oggetti e tu ne mantieni 2.

Ecco perché 2 modulo 4 è 2.


5

L'operatore modulo valuta il resto della divisione dei due operandi interi. Ecco alcuni esempi:

23 % 10 evaluates to 3 (because 23/10 is 2 with a remainder of 3)
50 % 50 evaluates to 0 (50/50 is 1 with a remainder of 0)
9 % 100 evaluates to 9 (9/100 is 0 with a remainder of 9)

4

mod indica il alesatore quando diviso per. Quindi 2 diviso 4 è 0 con 2 rimanenti. Pertanto 2 mod 4 è 2.


4

Modulo è il resto, espresso come un numero intero, di un'espressione di divisione matematica.

Quindi, supponiamo che tu abbia un pixel su uno schermo in posizione 90 in cui lo schermo è largo 100 pixel e ne aggiungi 20, si avvolgerà in posizione 10. Perché ... perché 90 + 20 = 110 quindi 110% 100 = 10.

Per me lo capisco, ritengo che il modulo sia la rappresentazione intera del numero frazionario. Inoltre, se esegui l'espressione all'indietro ed elabori il resto come un numero frazionario e poi lo aggiungi al divisore, otterrai la risposta originale.

Esempi:

    100
(A) ---  =  14 mod 2
     7

    123
(B) ---  =  8 mod 3
     15

     3
(C) ---  =  0 mod 3
     4

Invertito progettato per:

                        2      14(7)    2       98    2     100
 (A) 14 mod 2  =  14 + ---  =  ----- + ---  =  --- + ---  = ---
                        7        7      7       7     7      7

                      3      8(15)    3      120    3      123
 (B) 8 mod 3  =  8 + ---  =  ----- + ---  =  --- + ---  =  ---
                      15       15     15      15    15      15

                      3       3
 (B) 0 mod 3  =  0 + ---  =  ---
                      4       4

2

Quando dividi 2 per 4, ottieni 0 con 2 rimasti o rimanenti. Modulo è solo il resto dopo aver diviso il numero.


1

Penso che ti stai confondendo su come viene letta l'equazione del modulo.

Quando scriviamo un'equazione di divisione come 2/4 che stiamo dividendo 2 per 4.

Quando viene scritta un'equazione del modulo come quella 2 % 4che stiamo dividendo 2 by 4(pensate 2 su 4) e restituiamo il resto.


1

MOD è l'operatore residuo. Ecco perché 2 mod 4 fornisce 2 come resto. 4 * 0 = 0 e quindi 2-0 = 2. Per rendere più chiaro, prova a fare lo stesso con 6 mod 4 o 8 mod 3.


1

Questo è l'algoritmo di Euclide.

per esempio

a mod b = k * b + c => a mod b = c, dove k è un numero intero e c è la risposta

4 mod 2 = 2 * 2 + 0 => 4 mod 2 = 0

27 mod 5 = 5 * 5 + 2 => 27 mod 5 = 2

quindi la tua risposta è

2 mod 4 = 0 * 4 + 2 => 2 mod 4 = 2


1

Per:

2 mod 4

Possiamo usare questa piccola formula che mi è venuta in mente dopo aver pensato un po ', forse è già definita da qualche parte che non conosco ma funziona per me ed è davvero utile.

A mod B = C dove C è la risposta

K * B - A = |C| dove K è quante volte B si inserisce in A

2 mod 4 sarebbe:

0 * 4 - 2 = |C|

C = |-2| => 2

Spero che funzioni per te :)


1

L'operazione mod funziona con il promemoria.

Questo si chiama aritmetica modulare.

 a==b(mod m) 
 then m|(a-b)
 a-b=km 
 a=b+km
 So, 2=2+0*4

1

Per rispondere a un modulo x % y , fai due domande:

A- Quante volte yentra xsenza resto? Per il 2% 4 questo è 0.

B- Quanto devi aggiungere per tornare da quello a x? Per tornare da 0 a 2 avrai bisogno di 2-0, cioè 2.

Questi possono essere riassunti in una sola domanda in questo modo: quanto dovrai aggiungere al risultato intero della divisione di xper y, per tornare a x?

Per numero intero si intende solo numeri interi e non frazioni di alcun genere.

Un resto di divisione frazionaria (ad es. 283849) non è di interesse in modulo perché modulo si occupa solo di numeri interi.


0

Per un modo visivo di pensarci, immagina un quadrante di orologio che, nel tuo esempio particolare, va solo a 4 anziché a 12. Se inizi a 4 sull'orologio (che è come iniziare da zero) e lo fai in senso orario per 2 "ore", atterri su 2, proprio come girandoti in senso orario per 6 "ore" ti atterrerebbero anche su 2 (6 mod 4 == 2 proprio come 2 mod 4 == 2).


6
In realtà è piuttosto confuso.
Joe Phillips,

@ do3boy: l'idea del quadrante dell'orologio è un metodo molto semplice e facile per descrivere esattamente il fatto del modulo. a parte il fatto che sarebbe stato più semplice utilizzare il formato 24h per spiegarlo invece di modificare il numero di posizioni disponibili.
Atmocreazioni

0

Questo potrebbe essere un buon momento per menzionare la funzione modr (). Restituisce sia le parti intere che quelle rimanenti di una divisione.

print("\n 17 // 3 =",17//3," # Does the same thing as int(17/3)")
print(" 17 %  3 =",17%3," # Modulo division gives the remainder.")
whole, remain = divmod(17,3)
print(" divmod(17,3) returns ->",divmod(17,3),end="")
print(" because 3 goes into 17,",whole,"times with a remainder of",remain,end=".\n\n")
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.