2013-07-08 16 views
19

Capisco l'operatore modulo in termini della seguente espressione:Capire il modulo operatore%

7 % 5 

Questo sarebbe tornato 2 a causa del fatto che il 5 va in 7 una volta e poi dà la 2 che avanza , tuttavia la mia confusione arriva quando si invertire questa dichiarazione a leggere:

5 % 7 

questo mi dà il valore di 5, che mi confonde un po '. Anche se l'intero 7 non va in 5, parte di esso lo fa perché non c'è né resto o resto del 2 positivo o negativo?

Se sta calcolando il valore di 5 in base al fatto che 7 non va affatto a 5 perché il resto non è 7 invece di 5?

Mi sento come se ci fosse qualcosa che mi manca qui nella mia comprensione dell'operatore modulo.

+2

Modulus è 'valore assoluto'. Ti riferisci a 'modulo' che ha a che fare con i remainder. È un peccato che le parole siano così simili da far inciampare molte persone. – Discordanian

+0

Ho avuto un problema con i numeri decimali e negativi e ho trovato la mia risposta qui: https://stackoverflow.com/questions/48662225/understanding-something-more-about-the-modulo-modulus-and-modulo-modulus-w –

risposta

35

(Questa spiegazione è solo per i numeri positivi poiché dipende dalla lingua diversa)

Modulus dà il resto della divisione di un numero per un altro. Se chiedi a un bambino di 8 anni cosa dà 5 diviso per 7, (8 perché non conoscono i numeri decimali), risponderà: 0 ma rimane 5.

Puoi anche usare questa equazione:

a % b = a - floor(a/b) * b 

floor(a/b) rappresenta il numero di volte che è possibile dividere a da b (si veda ad esempio la figura). E floor(a/b) * b l'importo che è stato condiviso con successo. Il che significa che il totale meno ciò che è stato condiviso è uguale al resto della divisione. Ora è possibile utilizzare questa equazione:

5 % 7 = 5 - floor(5/7) * 7 = 5 

Euclidian Division

Detto questo, la vostra intuizione era che potesse essere -2 e non 5. In realtà, in aritmetica modulare, -2 = 5 (mod 7) perché esiste k in Z tale che 7k - 2 = 5.

Forse non hai imparato l'aritmetica modulare, ma probabilmente hai usato gli angoli e sai che -90 ° è uguale a 270 ° perché è modulo 360. È simile, si avvolge! Quindi prendi un cerchio e dì che il perimetro è 7. Quindi leggi dove è 5. E se provi con 10, dovrebbe essere a 3 perché 10 % 7 è 3.

0

L'operatore modulo fornisce il risultato in "sistema di residui ridotti". Ad esempio per mod 5 ci sono 5 numeri interi contati: 0,1,2,3,4. Infatti 19 = 12 = 5 = -2 = -9 (mod 7). La principale differenza che la risposta è data dai linguaggi di programmazione con "sistema di residui ridotti".

0

Un nuovo modo di scoprire il resto è riportata qui sotto

Dichiarazione: resto è sempre costante

ex : 26 divided by 7 gives R : 5 

questo può essere scoperto facilmente trovare il numero che divide completamente 26 che è più vicino a la divisore e prendendo la differenza di entrambi

13 is the next number after 7 that completely divides 26 because after 7 comes 8, 9 , 

10, 11, 12 where none of them divides 26 completely and give remainder 0. 
So 13 is the closest number to 7 which divides to give Remainder 0. 
now take the difference (13 ~ 7) = 5 which is the Remainder . 

note : for this to work divisor should be reduced to its simplest form ex: if 14 
is the divisor ..7 has to be chosen to find the closest number dividing the dividend. 
3

modulo è il sistema resti.

Quindi 7% 5 = 2.

5% 7 = 5

3% 7 = 3

2% 7 = 2

1% 7 = 1

Se utilizzato all'interno di una funzione per determinare l'indice della matrice. È una programmazione sicura? Questa è una domanda diversa. Suppongo.

1

Fase 1: 5/7 = 0,71

Fase 2: Prendere la parte sinistra del decimale, quindi prendiamo 0 da 0,71 e moltiplicare per 7 0 * 7 = 0;

Step #: 5-0 = 5; Pertanto, 5/7 = 5

2

Come altri hanno sottolineato il modulo si basa sul resto del sistema.

Penso che un modo più semplice di pensare al modulo sia ciò che rimane dopo che un dividendo (il numero da dividere) è stato completamente diviso da un divisore. Quindi se pensiamo al 5% 7, quando dividi 5 per 7, 7 può andare in 5 solo 0 volte e quando sottrai 0 (7 * 0) da 5 (proprio come abbiamo imparato a scuola elementare), quindi il resto sarebbe 5 (il mod). Vedere l'illustrazione qui sotto.

0 
    ______ 
7) 5  
__-0____ 
    5 

Con la stessa logica, -5 mod 7 sarà -5 (solo 0 7s possono andare a -5 e -5-0 * 7 = -5). Con lo stesso token -5 mod -7 sarà anche -5. Alcuni casi più interessanti:

5 mod (-3) = 2, cioè 5 - (-3 * -1)

(-5) mod (-3) = -2 cioè -5 - (-3 * 1) = -5 + 3

0

consente di mettere in questo modo:
realtà Modulo operatore fa la stessa divisione, ma non si preoccupa la risposta, si preoccupa promemoria per esempio se si dividi da 7 a 5,
quindi, consentitemi di illustrarvi un semplice esempio:
think 5 è un blocco, quindi ad esempio avremo 3 blocchi in 15 (WITH Nothing Left), ma quando questo login arriva a questo genere di numeri {1,3,5,7,9,11, ...}, ecco dove esce il modulo quindi prendi quella logica che ho detto prima e applicala per 7, quindi la risposta sarà che abbiamo 1 blocco di 5 in 7 => con 2 ricordi nella nostra mano! questo è il modulo !!!
ma stavate chiedendo circa il 5% 7, giusto?
quindi prendi la logica che ho detto, quanti 7 blocchi abbiamo in 5 ????
in modo che il modulo restituisce 0 ...
il gioco è fatto ...