Por que 2 mod 4 = 2?


150

Tenho vergonha de fazer uma pergunta tão simples. Meu mandato não começa por mais duas semanas, então não posso perguntar a um professor, e o suspense me mataria.

Por que 2 mod 4 = 2?


45
Porque 2 = 0 * 4 + 2.
P4bl0


1
Em x / y, os resultados consistem em uma parte inteira e uma parte de fração. Se você multiplicar a parte da fração pelo divisor, obtém o restante. E x = Parte inteira y + Restante (isto é, parte da fração y). Neste caso Integer parte é 0, eo restante é 2.
mshsayem

76
feliz que você teve a coragem de fazer essa pergunta.
pave

o módulo está longe de ser igual a dividir dois números.
holex

Respostas:


151

Mod significa apenas que você fica com o restante após realizar a divisão. Como 4 entra em 2 zero vezes, você acaba com 2.


95

Módulo é o restante, não divisão.

2 / 4 = 0R2
2 % 4 = 2

O sinal %é frequentemente usado para o operador do módulo, em vez da palavra mod.

Para x % 4, você obtém a tabela a seguir (para 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

O módulo (mod,%) é o operador Restante.

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 "detalhado" explicação: 2 = 4 · 0 + 2 ;-)
Michael Krelin - hacker de

13

Muito mais fácil se você usar bananas e um grupo de pessoas.

Digamos que você tenha 1 banana e um grupo de 6 pessoas, isso você expressaria: 1 mod 6/ 1 % 6/ 1 modulo 6.

Você precisa de 6 bananas para que cada pessoa do grupo seja bem alimentada e feliz.

Portanto, se você tiver 1 banana e precisar compartilhá-la com 6 pessoas, mas você só poderá compartilhar se tiver 1 banana para cada membro do grupo, ou seja, 6 pessoas, terá 1 banana (o restante, não será compartilhado com ninguém) grupo), o mesmo vale para 2 bananas. Então você terá 2 bananas como restante (nada será compartilhado).

Mas quando você recebe 6 bananas, deve estar feliz, porque há 1 banana para cada membro do grupo de 6 pessoas e o restante é 0 ou nenhuma banana quando você compartilhou todas as 6 bananas em 6 pessoas.

Agora, para 7 bananas e 6 pessoas em grupo, você terá 7 mod 6 = 1, isso porque você deu a 6 pessoas 1 banana cada e 1 banana é o restante.

Para 12 mod 6ou 12 bananas compartilhadas em 6 pessoas, cada uma terá duas bananas e o restante será 0.



8

Eu também estava confuso sobre isso, apenas alguns minutos atrás. Então eu fiz a divisão em um pedaço de papel e fez sentido:

  • 4 entra em 2 vezes zero.
  • 4 vezes 0 é 0.
  • Você coloca esse zero abaixo do 2 e subtrai o que deixa 2.

Até onde o computador vai resolver esse problema. O computador pára por aí e retorna o 2, o que faz sentido, pois é o que "%" (mod) está pedindo.

Fomos treinados para colocar o decimal e continuar, e é por isso que isso pode ser contra-intuitivo no início.


7

Alguém entrou em contato comigo e pediu que eu explicasse com mais detalhes minha resposta no comentário da pergunta. Então, aqui está o que eu respondi a essa pessoa, caso ela possa ajudar outra pessoa:

A operação do módulo fornece o restante da divisão euclidiana (que funciona apenas com números inteiros, e não reais). Se você tem A tal que A = B * C + D (com D <B), então o quociente da divisão euclidiana de A por B é C e o restante é D. Se você dividir 2 por 4, o quociente é 0 e o restante é 2.

Suponha que você tenha objetos A (que você não pode cortar). E você deseja distribuir a mesma quantidade desses objetos para as pessoas B. Contanto que você tenha mais de B objetos, dê 1 a cada um deles e repita. Quando você tem menos de B objetos, você para e mantém os objetos restantes. O número de vezes que você repetiu a operação, vamos chamar esse número C, é o quociente. O número de objetos que você mantém no final, vamos chamá-lo de D, é o restante.

Se você tem 2 objetos e 4 pessoas. Você já tem menos de 4 objetos. Então cada pessoa recebe 0 objetos e você mantém 2.

É por isso que 2 módulo 4 é 2.


5

O operador do módulo é avaliado para o restante da divisão dos dois operandos inteiros. Aqui estão alguns exemplos:

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 significa o alargador quando dividido por. Então 2 dividido por 4 é 0 com 2 restantes. Portanto 2 mod 4 é 2.


4

Módulo é o restante, expresso como um número inteiro, de uma expressão de divisão matemática.

Então, digamos que você tenha um pixel em uma tela na posição 90, em que a tela possui 100 pixels de largura e adicione 20, ela será posicionada em volta da posição 10. Por que ... porque 90 + 20 = 110, portanto, 110% 100 = 10.

Para eu entender, considero que o módulo é a representação inteira do número fracionário. Além disso, se você fizer a expressão para trás e processar o restante como um número fracionário e depois adicioná-lo ao divisor, ele fornecerá sua resposta original.

Exemplos:

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

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

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

Invertida projetada para:

                        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 você divide 2 por 4, obtém 0 com 2 restantes ou restantes. Módulo é apenas o restante depois de dividir o número.


1

Eu acho que você está ficando confuso sobre como a equação do módulo é lida.

Quando escrevemos uma equação de divisão, como 2/4estamos dividindo 2 por 4.

Quando uma equação de módulo é escrita, como 2 % 4estamos dividindo 2 by 4(pense 2 sobre 4) e retornando o restante.


1

MOD é o operador restante. É por isso que 2 mod 4 fornece 2 como restante. 4 * 0 = 0 e depois 2-0 = 2. Para tornar mais claro, tente fazer o mesmo com 6 mod 4 ou 8 mod 3.


1

Este é o algoritmo Euclides.

por exemplo

a mod b = k * b + c => a mod b = c, onde k é um número inteiro ec é a resposta

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

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

então sua resposta é

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


1

Para:

2 mod 4

Podemos usar essa pequena fórmula que eu inventei depois de pensar um pouco, talvez ela já esteja definida em algum lugar que eu não conheço, mas funcione para mim e seja realmente útil.

A mod B = C onde C é a resposta

K * B - A = |C| onde K é quantas vezes B se encaixa em A

2 mod 4 seria:

0 * 4 - 2 = |C|

C = |-2| => 2

Espero que funcione para você :)


1

A operação Mod funciona com lembrete.

Isso é chamado aritmética modular.

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

1

Para responder a um módulo x % y, faça duas perguntas:

A- Quantas vezes yentra xsem deixar resíduos? Para 2% 4, é 0.

B- Quanto você precisa adicionar para voltar disso x? Para passar de 0 a 2, você precisará de 2-0, ou seja, 2.

Eles podem ser resumidos em uma pergunta da seguinte forma: quanto você precisará adicionar ao resultado inteiro da divisão de xpor y, para voltar x?

Por número inteiro, entende-se apenas números inteiros e não frações que sejam de interesse.

Um restante de divisão fracionária (por exemplo, 283849) não é interessante no módulo porque o módulo lida apenas com números inteiros.


0

Para uma maneira visual de pensar sobre isso, imagine um mostrador de relógio que, no seu exemplo particular, só vá para 4 em vez de 12. Se você começar às 4 no relógio (que é como começar no zero) e girar no sentido horário para 2 "horas", você pousa em 2, assim como girar no sentido horário por 6 "horas" também o pousará em 2 (6 mod 4 == 2, assim como 2 mod 4 == 2).


6
Isso é realmente muito confuso.
31410 Joe Phillips

@ do3boy: a idéia da face do relógio é um método muito simples e fácil de descrever exatamente o fato do módulo. exceto que teria sido mais fácil usar o formato 24h para explicá-lo, em vez de modificar o número de posições disponíveis.
Atmocreations

0

Este pode ser um bom momento para mencionar a função modr (). Ele retorna as partes inteira e restante de uma divisão.

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")
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.