Entendendo o Operador do Módulo

Eu entendo o operador Modulus em termos da seguinte expressão:

7 % 5 

Isso retornaria 2 devido ao fato de que 5 vai para 7 uma vez e, em seguida, dá o 2 que sobra, no entanto minha confusão vem quando você inverte esta instrução para ler:

 5 % 7 

Isso me dá o valor de 5, o que me confunde um pouco. Embora o todo de 7 não entre em 5, parte disso acontece porque não há nenhum resto ou um resto de positivo ou negativo 2?

Se estiver calculando o valor de 5 com base no fato de que 7 não entra em 5, por que o restante não é 7 em vez de 5?

Eu sinto que há algo que estou perdendo aqui no meu entendimento do operador de módulo.

(Esta explicação é apenas para números positivos, pois depende da linguagem caso contrário)

Definição

O Módulo é o restante da divisão euclideana de um número por outro. % é chamado de operação do módulo .

Por exemplo, 9 dividido por 4 é igual a 2 mas permanece 1 . Aqui, 9 / 4 = 2 e 9 % 4 = 1 .

Divisão Euclidiana

No seu exemplo: 5 dividido por 7 dá 0, mas permanece 5 ( 5 % 7 == 5 ).

Cálculo

A operação do módulo pode ser calculada usando esta equação:

 a % b = a - floor(a / b) * b 
  • floor(a / b) representa o número de vezes que você pode dividir a por b
  • floor(a / b) * b é o montante que foi compartilhado com sucesso inteiramente
  • O total ( a ) menos o que foi compartilhado é igual ao restante da divisão

Aplicado ao último exemplo, isso dá:

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

Aritmética Modular

Dito isso, sua intuição era de que poderia ser -2 e não 5. Na verdade, na aritmética modular, -2 = 5 (mod 7) porque existe k em Z tal que 7k - 2 = 5 .

Você pode não ter aprendido aritmética modular, mas você provavelmente usou ângulos e sabe que -90 ° é o mesmo que 270 ° porque é o módulo 360. É similar, ele envolve! Então pegue um círculo, e diga que o perímetro é 7. Então você lê onde está 5. E se você tentar com 10, deve estar em 3 porque 10 % 7 é 3.

Como outros indicaram, o módulo baseia-se no sistema restante.

Acho que uma maneira mais fácil de pensar sobre o módulo é o que resta depois que um dividendo (número a ser dividido) foi totalmente dividido por um divisor. Então, se pensarmos em 5% 7, quando você divide 5 por 7, 7 pode ir para 5 apenas 0 vezes e quando você subtrai 0 (7 * 0) de 5 (assim como aprendemos no ensino fundamental), então o restante seria 5 (o mod). Veja a ilustração abaixo.

  0 ______ 7) 5 __-0____ 5 

Com a mesma lógica, -5 o mod 7 será -5 (apenas 0 7s podem entrar em -5 e -5-0 * 7 = -5). Com o mesmo token -5 mod -7 também será -5. Mais alguns casos interessantes:

5 mod (-3) = 2 ie 5 – (-3 * -1)

(-5) mod (-3) = -2 ie -5 – (-3 * 1) = -5 + 3

módulo é sistema de restos.

Então 7% 5 = 2.

5% 7 = 5

3% 7 = 3

2% 7 = 2

1% 7 = 1

Quando usado dentro de uma function para determinar o índice da matriz. É uma programação segura? Essa é uma questão diferente. Eu acho.

Etapa 1: 5/7 = 0,71

Passo 2: Pegue o lado esquerdo do decimal, então pegamos 0 de 0.71 e multiplicamos por 7 0 * 7 = 0;

Etapa #: 5-0 = 5; Portanto, 5/7 = 5

O operador de módulo fornece o resultado em ‘sistema de resíduos reduzido’. Por exemplo, para o mod 5, existem 5 números inteiros contados: 0,1,2,3,4. De fato, 19 = 12 = 5 = -2 = -9 (mod 7) . A principal diferença é que a resposta é dada pelas linguagens de programação por ‘sistema reduzido de resíduos’.

Uma nova maneira de descobrir o restante é dada abaixo

Declaração: Restante é sempre constante

 ex : 26 divided by 7 gives R : 5 

isso pode ser descoberto facilmente encontrando o número que divide completamente 26, que está mais próximo do divisor e tirando a diferença de ambos

 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. 

vamos colocar desta forma:
na verdade, o operador Modulus faz a mesma divisão, mas não se preocupa com a resposta, ela se importa com o lembrete, por exemplo, se você dividir de 7 a 5,
Então, deixe-me levá-lo através de um exemplo simples:
acho que 5 é um bloco, então por exemplo vamos ter 3 blocos em 15 ( WITH Nothing Left ), mas quando esse loginc chegar a esses números {1,3,5,7,9,11, …}, aqui é onde o Módulo sai, então pegue a lógica que eu disse antes e aplique-a para 7, então a resposta será que nós temos 1 bloco de 5 em 7 => com 2 lembretes em nossas mãos! esse é o módulo !!!
mas você estava perguntando sobre 5% 7, certo?
então pegue a lógica que eu disse, quantos 7 blocos nós temos em 5 ???? 0
então o módulo retorna 0 …
é isso aí …

É apenas sobre os restos. Deixa-me mostrar-te como

 10 % 5=0 9 % 5=4 (because the remainder of 9 when divided by 5 is 4) 8 % 5=3 7 % 5=2 6 % 5=1 5 % 5=0 (because it is fully divisible by 5) 

Agora devemos nos lembrar de uma coisa, mod significa resto, então

 4 % 5=4 

mas por que 4? porque 5 X 0 = 0 então 0 é o múltiplo mais próximo que é menor que 4, portanto 4-0 = 4